Skip to content

Commit bd7d490

Browse files
committed
update:export net auth for verification module
1 parent f54f9e0 commit bd7d490

File tree

9 files changed

+198
-71
lines changed

9 files changed

+198
-71
lines changed

.github/workflows/macbuild.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@ jobs:
1010
strategy:
1111
matrix:
1212
include:
13-
- os: macos-13
14-
- os: macos-14
1513
- os: macos-15
14+
- os: macos-15-intel
1615
runs-on: ${{ matrix.os }}
1716

1817
steps:
@@ -34,13 +33,13 @@ jobs:
3433
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
3534
3635
- name: Set up Dependency x86_64 Environment
37-
if: matrix.os == 'macos-13'
36+
if: matrix.os == 'macos-15-intel'
3837
run: |
3938
cd libxengine
4039
chmod 777 *
4140
./XEngine_LINEnv.sh -i 3
4241
- name: Set up Dependency Arm64 Environment
43-
if: matrix.os == 'macos-14' || matrix.os == 'macos-15'
42+
if: matrix.os == 'macos-15'
4443
run: |
4544
latest_tag=$(git ls-remote --tags --sort="v:refname" https://github.com/libxengine/libxengine.git | awk '{print $2}' | sed 's/refs\/tags\///' | tail -n 1)
4645
wget https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_Mac_Arm64.zip

XEngine.sln

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AIApi_APPExample", "XEngine
5757
EndProjectSection
5858
EndProject
5959
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_Verification", "XEngine_Module\XEngine_Verification\XEngine_Verification.vcxproj", "{A8E43EC0-698A-4807-8A61-B2BE5FAB7256}"
60+
ProjectSection(ProjectDependencies) = postProject
61+
{F1736B3F-03A2-4FC7-B045-A12BA8D724FB} = {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}
62+
EndProjectSection
6063
EndProject
6164
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Verification_APPExample", "XEngine_Example\Verification_APPExample\Verification_APPExample.vcxproj", "{6DDE9B0B-5DDA-47B0-BF6F-ADF47EC8568A}"
6265
ProjectSection(ProjectDependencies) = postProject

XEngine_Module/XEngine_Verification/Verification_Define.h

Lines changed: 135 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -720,4 +720,138 @@ extern "C" bool Verification_XAuthKey_WriteMemory(XCHAR* ptszMsgBuffer, int* pIn
720720
意思:是否成功
721721
备注:
722722
*********************************************************************/
723-
extern "C" bool Verification_XAuthKey_ReadMemory(LPCXSTR lpszMsgBuffer, int nMsgLen, VERIFICATION_XAUTHKEY* pSt_AuthLocal);
723+
extern "C" bool Verification_XAuthKey_ReadMemory(LPCXSTR lpszMsgBuffer, int nMsgLen, VERIFICATION_XAUTHKEY* pSt_AuthLocal);
724+
/********************************************************************
725+
函数名称:Verification_XAuthNet_TryRequest
726+
函数功能:试用版请求
727+
参数.一:lpszURLAddr
728+
In/Out:In
729+
类型:常量字符指针
730+
可空:N
731+
意思:函数的API地址,需要输入完整的URL
732+
参数.二:lpszPass
733+
In/Out:In
734+
类型:常量字符指针
735+
可空:Y
736+
意思:输入密码,如果服务端设置了密码客户端也必须使用加密通信
737+
返回值
738+
类型:逻辑型
739+
意思:是否成功
740+
备注:
741+
*********************************************************************/
742+
extern "C" bool Verification_XAuthNet_TryRequest(LPCXSTR lpszURLAddr, LPCXSTR lpszPass = NULL);
743+
/********************************************************************
744+
函数名称:Verification_XAuthNet_GetDCode
745+
函数功能:获取动态码
746+
参数.一:lpszURLAddr
747+
In/Out:In
748+
类型:常量字符指针
749+
可空:N
750+
意思:服务器地址,完成的API地址,比如:http://127.0.0.1:5302/api?function=dcode&user=get
751+
参数.二:pInt_DYCode
752+
In/Out:Out
753+
类型:整数型指针
754+
可空:N
755+
意思:输出动态码
756+
参数.三:pxhToken
757+
In/Out:Out
758+
类型:整数型指针
759+
可空:N
760+
意思:输出绑定的句柄
761+
参数.四:pInt_Timeout
762+
In/Out:Out
763+
类型:整数型指针
764+
可空:Y
765+
意思:输出动态码超时时间
766+
参数.五:lpszPass
767+
In/Out:In
768+
类型:常量字符指针
769+
可空:Y
770+
意思:输入密码,如果服务端设置了密码客户端也必须使用加密通信
771+
返回值
772+
类型:逻辑型
773+
意思:是否成功
774+
备注:
775+
*********************************************************************/
776+
extern "C" bool Verification_XAuthNet_GetDCode(LPCXSTR lpszURLAddr, int* pInt_DYCode, XNETHANDLE* pxhToken, int* pInt_Timeout = NULL, LPCXSTR lpszPass = NULL);
777+
/********************************************************************
778+
函数名称:Verification_XAuthNet_Connect
779+
函数功能:链接到服务器
780+
参数.一:lpszClientAddr
781+
In/Out:In
782+
类型:常量字符指针
783+
可空:N
784+
意思:服务器地址
785+
参数.二:nPort
786+
In/Out:In
787+
类型:整数型
788+
可空:N
789+
意思:服务器端口
790+
参数.三:lpszPass
791+
In/Out:In
792+
类型:常量字符指针
793+
可空:N
794+
意思:服务器密码,如果没有填空
795+
返回值
796+
类型:逻辑型
797+
意思:是否成功
798+
备注:
799+
*********************************************************************/
800+
extern "C" bool Verification_XAuthNet_Connect(LPCXSTR lpszClientAddr, int nPort, LPCXSTR lpszPass = NULL);
801+
/********************************************************************
802+
函数名称:Verification_XAuthNet_Close
803+
函数功能:销毁关闭客户端
804+
返回值
805+
类型:逻辑型
806+
意思:是否成功
807+
备注:
808+
*********************************************************************/
809+
extern "C" bool Verification_XAuthNet_Close();
810+
/********************************************************************
811+
函数名称:Verification_XAuthNet_GetAuth
812+
函数功能:验证用户是否登录或者超时
813+
返回值
814+
类型:逻辑型
815+
意思:是否通过验证,可能是没有登录或者过期
816+
备注:
817+
*********************************************************************/
818+
extern "C" bool Verification_XAuthNet_GetAuth();
819+
/********************************************************************
820+
函数名称:Verification_XAuthNet_Login
821+
函数功能:登录到服务器
822+
参数.一:lpszUser
823+
In/Out:In
824+
类型:常量字符指针
825+
可空:N
826+
意思:输入用户名
827+
参数.二:lpszPass
828+
In/Out:In
829+
类型:常量字符指针
830+
可空:N
831+
意思:输入密码
832+
参数.三:lpszHWCode
833+
In/Out:In
834+
类型:常量字符指针
835+
可空:Y
836+
意思:输入硬件码,如果服务器开启了硬件绑定
837+
参数.四:nDYCode
838+
In/Out:In
839+
类型:整数型
840+
可空:Y
841+
意思:输入动态码
842+
参数.五:xhToken
843+
In/Out:In
844+
类型:句柄型
845+
可空:Y
846+
意思:输入动态码绑定的句柄
847+
参数.六:dwCryption
848+
In/Out:In
849+
类型:整数型
850+
可空:Y
851+
意思:输入密码加密类型
852+
返回值
853+
类型:逻辑型
854+
意思:是否成功
855+
备注:
856+
*********************************************************************/
857+
extern "C" bool Verification_XAuthNet_Login(LPCXSTR lpszUser, LPCXSTR lpszPass, LPCXSTR lpszHWCode = NULL, XSHOT nDYCode = 0, XNETHANDLE xhToken = 0, XLONG dwCryption = 0);

XEngine_Module/XEngine_Verification/Verification_Error.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
/************************************************************************/
2626
/* XAUTH验证错误 */
2727
/************************************************************************/
28-
#define ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_EXPIRED 0x01E2000 //已经过期的CDKEY,无法继续使用
2928
#define ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_PARAMENT 0x01E2001 //参数错误,无法继续
3029
#define ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_NOTSUPPORT 0x01E2002 //不支持此生成类型
3130
#define ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_UNKNOW 0x01E2003 //获取类型失败,这个类型未知
@@ -40,4 +39,5 @@
4039
#define ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_PARSE 0x01E2012 //解析数据失败
4140
#define ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_CODE 0x01E2013 //服务器返回的CODE错误
4241
#define ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_THREAD 0x01E2014 //创建线程失败
43-
#define ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_NOTAUTH 0x01E2015 //没有验证无法继续
42+
#define ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_NOTAUTH 0x01E2015 //没有验证无法继续
43+
#define ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_NOLOGIN 0x01E2016 //没有登录无法继续

XEngine_Module/XEngine_Verification/Verification_XAuth/Verification_XAuthKey.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ bool CVerification_XAuthKey::Verification_XAuthKey_KeyParse(VERIFICATION_XAUTHKE
225225
else if (ENUM_VERIFICATION_MODULE_CDKEY_TYPE_EXPIRED == pSt_XAuthInfo->st_AuthRegInfo.enRegType)
226226
{
227227
Verification_IsErrorOccur = true;
228-
Verification_dwErrorCode = ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_EXPIRED;
228+
Verification_dwErrorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_EXPIRED;
229229
return false;
230230
}
231231
else
@@ -262,7 +262,7 @@ bool CVerification_XAuthKey::Verification_XAuthKey_KeyParse(VERIFICATION_XAUTHKE
262262
if (pSt_XAuthInfo->st_AuthRegInfo.nHasTime < 0)
263263
{
264264
Verification_IsErrorOccur = true;
265-
Verification_dwErrorCode = ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_EXPIRED;
265+
Verification_dwErrorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_EXPIRED;
266266
pSt_XAuthInfo->st_AuthRegInfo.enRegType = ENUM_VERIFICATION_MODULE_CDKEY_TYPE_EXPIRED;
267267
_xstprintf(pSt_XAuthInfo->st_AuthRegInfo.tszExpiryTime, _X("%04d-%02d-%02d %02d:%02d:%02d"), st_SysTimer.wYear, st_SysTimer.wMonth, st_SysTimer.wDay, st_SysTimer.wHour, st_SysTimer.wMinute, st_SysTimer.wSecond);
268268
return false;
@@ -506,7 +506,7 @@ bool CVerification_XAuthKey::Verification_XAuthKey_UserRegister(VERIFICATION_XAU
506506
if (nTimeCount <= 0)
507507
{
508508
Verification_IsErrorOccur = true;
509-
Verification_dwErrorCode = ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_EXPIRED;
509+
Verification_dwErrorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_EXPIRED;
510510
return false;
511511
}
512512
BaseLib_Time_StrToTime(pSt_AuthLocal->st_AuthSerial.st_DataLimit.tszDataTime, &st_LibTime);

XEngine_Module/XEngine_Verification/Verification_XAuth/Verification_XAuthNet.cpp

Lines changed: 20 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ CVerification_XAuthNet::~CVerification_XAuthNet()
2121
// 公有函数
2222
//////////////////////////////////////////////////////////////////////////
2323
/********************************************************************
24-
函数名称:AuthClient_HTTPVer_TryRequest
24+
函数名称:Verification_XAuthNet_TryRequest
2525
函数功能:试用版请求
2626
参数.一:lpszURLAddr
2727
In/Out:In
@@ -123,7 +123,7 @@ bool CVerification_XAuthNet::Verification_XAuthNet_TryRequest(LPCXSTR lpszURLAdd
123123
return true;
124124
}
125125
/********************************************************************
126-
函数名称:AuthClient_HTTPVer_GetDCode
126+
函数名称:Verification_XAuthNet_GetDCode
127127
函数功能:获取动态码
128128
参数.一:lpszURLAddr
129129
In/Out:In
@@ -223,7 +223,6 @@ bool CVerification_XAuthNet::Verification_XAuthNet_GetDCode(LPCXSTR lpszURLAddr,
223223
BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
224224
return true;
225225
}
226-
227226
/********************************************************************
228227
函数名称:Verification_XAuthNet_Connect
229228
函数功能:链接到服务器
@@ -288,32 +287,34 @@ bool CVerification_XAuthNet::Verification_XAuthNet_Close()
288287
}
289288
m_bLogin = false;
290289
m_bAuth = false;
291-
m_bHeart = false;
292290
XClient_TCPSelect_Close(m_hSocket);
293291
return true;
294292
}
295293
/********************************************************************
296294
函数名称:Verification_XAuthNet_GetAuth
297295
函数功能:验证用户是否登录或者超时
298-
参数.一:pbAuth
299-
In/Out:Out
300-
类型:逻辑型指针
301-
可空:Y
302-
意思:输出是否验证,如果登录成功但是参数为假.说明没有剩余时间了
303296
返回值
304297
类型:逻辑型
305-
意思:是否登录,如果没有登录将返回假,登录成功才需要判断是否通过验证
298+
意思:是否通过验证,可能是没有登录或者过期
306299
备注:
307300
*********************************************************************/
308-
bool CVerification_XAuthNet::Verification_XAuthNet_GetAuth(bool* pbAuth /* = NULL */)
301+
bool CVerification_XAuthNet::Verification_XAuthNet_GetAuth()
309302
{
310303
Verification_IsErrorOccur = false;
311304

312-
if (NULL != pbAuth)
305+
if (!m_bLogin)
313306
{
314-
*pbAuth = m_bAuth;
307+
Verification_IsErrorOccur = true;
308+
Verification_dwErrorCode = ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_NOLOGIN;
309+
return false;
310+
}
311+
if (m_bAuth)
312+
{
313+
Verification_IsErrorOccur = true;
314+
Verification_dwErrorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_EXPIRED;
315+
return false;
315316
}
316-
return m_bLogin;
317+
return true;
317318
}
318319
/********************************************************************
319320
函数名称:Verification_XAuthNet_Login
@@ -469,32 +470,6 @@ bool CVerification_XAuthNet::Verification_XAuthNet_Login(LPCXSTR lpszUser, LPCXS
469470
}
470471
return true;
471472
}
472-
/********************************************************************
473-
函数名称:Verification_XAuthNet_Heart
474-
函数功能:启用禁用客户端心跳
475-
参数.一:bEnable
476-
In/Out:In
477-
类型:逻辑型
478-
可空:Y
479-
意思:是启用还是禁用
480-
返回值
481-
类型:逻辑型
482-
意思:是否成功
483-
备注:
484-
*********************************************************************/
485-
bool CVerification_XAuthNet::Verification_XAuthNet_Heart(bool bEnable /* = true */)
486-
{
487-
Verification_IsErrorOccur = false;
488-
489-
if (!m_bAuth)
490-
{
491-
Verification_IsErrorOccur = true;
492-
Verification_dwErrorCode = ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_NOTAUTH;
493-
return false;
494-
}
495-
m_bHeart = bEnable;
496-
return true;
497-
}
498473
//////////////////////////////////////////////////////////////////////////
499474
// 保护函数
500475
//////////////////////////////////////////////////////////////////////////
@@ -514,6 +489,7 @@ XHTHREAD XCALLBACK CVerification_XAuthNet::Verification_XAuthNet_Thread(XPVOID l
514489
pClass_This->m_bRun = false;
515490
pClass_This->m_bLogin = false;
516491
pClass_This->m_bAuth = false;
492+
XClient_TCPSelect_Close(pClass_This->m_hSocket);
517493
break;
518494
}
519495
XCHAR tszMsgBuffer[4096] = {};
@@ -529,24 +505,11 @@ XHTHREAD XCALLBACK CVerification_XAuthNet::Verification_XAuthNet_Thread(XPVOID l
529505

530506
if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_EXPIRED == st_ProtocolHdr.wReserve)
531507
{
508+
pClass_This->m_bRun = false;
509+
pClass_This->m_bLogin = false;
532510
pClass_This->m_bAuth = false;
533-
}
534-
//心跳支持
535-
if (pClass_This->m_bHeart)
536-
{
537-
time_t nTimeEnd = time(NULL);
538-
if ((nTimeEnd - nTimeStart) > 2)
539-
{
540-
XENGINE_PROTOCOLHDR st_ProtocolHdr = {};
541-
st_ProtocolHdr.wHeader = XENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADER;
542-
st_ProtocolHdr.unOperatorType = ENUM_XENGINE_COMMUNICATION_PROTOCOL_TYPE_HEARTBEAT;
543-
st_ProtocolHdr.unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_HB_SYN;
544-
st_ProtocolHdr.byVersion = 1;
545-
st_ProtocolHdr.wTail = XENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL;
546-
547-
nTimeStart = nTimeEnd;
548-
XClient_TCPSelect_SendMsg(pClass_This->m_hSocket, (LPCXSTR)&st_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR));
549-
}
511+
XClient_TCPSelect_Close(pClass_This->m_hSocket);
512+
break;
550513
}
551514
std::this_thread::sleep_for(std::chrono::seconds(1));
552515
}

XEngine_Module/XEngine_Verification/Verification_XAuth/Verification_XAuthNet.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,14 @@ class CVerification_XAuthNet
2828
public:
2929
bool Verification_XAuthNet_Connect(LPCXSTR lpszClientAddr, int nPort, LPCXSTR lpszPass = NULL);
3030
bool Verification_XAuthNet_Close();
31-
bool Verification_XAuthNet_GetAuth(bool* pbAuth = NULL);
31+
bool Verification_XAuthNet_GetAuth();
3232
bool Verification_XAuthNet_Login(LPCXSTR lpszUser, LPCXSTR lpszPass, LPCXSTR lpszHWCode = NULL, XSHOT nDYCode = 0, XNETHANDLE xhToken = 0, XLONG dwCryption = 0);
33-
bool Verification_XAuthNet_Heart(bool bEnable = true);
3433
protected:
3534
static XHTHREAD XCALLBACK Verification_XAuthNet_Thread(XPVOID lParam);
3635
private:
3736
bool m_bRun = false;
3837
bool m_bLogin = false;
3938
bool m_bAuth = false;
40-
bool m_bHeart = false;
4139
XSOCKET m_hSocket = 0;
4240
XCHAR tszPassStr[128] = {};
4341
private:

XEngine_Module/XEngine_Verification/XEngine_Verification.def

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,10 @@ EXPORTS
2626
Verification_XAuthKey_WriteKey
2727
Verification_XAuthKey_ReadKey
2828
Verification_XAuthKey_WriteMemory
29-
Verification_XAuthKey_ReadMemory
29+
Verification_XAuthKey_ReadMemory
30+
Verification_XAuthNet_TryRequest
31+
Verification_XAuthNet_GetDCode
32+
Verification_XAuthNet_Connect
33+
Verification_XAuthNet_Close
34+
Verification_XAuthNet_GetAuth
35+
Verification_XAuthNet_Login

0 commit comments

Comments
 (0)