Skip to content

Commit 8ec9f73

Browse files
committed
added:create client id and key support for token
1 parent 3f89ddb commit 8ec9f73

13 files changed

Lines changed: 516 additions & 13 deletions

File tree

‎README.en.md‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ port :tcp port 5300,websocket port 5301,http management port 5302,Transmission v
119119
#### app packet service
120120
If you don't have software development capabilities, don't want to implement it yourself, or want to add authorization verification to other software, we also provide an authorization packaging service, which allows your program to directly package our verification.
121121
Program Packaging Service is a paid service, and you can package and add verification to any program. You can integrate our verification service without requiring source code or modifying your program. After packaging is complete, when it is run next time, our verification client will run first, and then your provided program will run after verification is successful, which is very convenient to use.
122-
This service is paid, priced at 200 per package. It supports both x86 and x64 programs, and only requires you to provide your server address, port, and verification mode. The process is as follows:
122+
This service is paid, priced at $20 per package. It supports both x86 and x64 programs, and only requires you to provide your server address, port, and verification mode. The process is as follows:
123123
Payment → Send the program to us → We package it → Verification testing → Send the packaged program to you → Completed
124124
After packaging, when the program is launched, the following window will open first. Only after a successful login will your program start. As shown below, once launched, the main interface will be displayed. After login, the main interface will close and your program will then start.
125125
![Main Interface](./XEngine_Picture/packet_1.png "Main Interface")
@@ -132,9 +132,10 @@ After packaging, when the program is launched, the following window will open fi
132132
The verification timer will automatically stop. Supported features include login, local CDKEY verification, registration, recharge, password recovery, and remaining time query.
133133
Note: This feature is only a packaging replacement. If you require full encryption, shell protection, and higher security, you must implement it yourself through code development.
134134
#### Packager
135-
We can also provide the original packager if you have more packaging needs. The packager is currently in a promotional campaign, 500 yuan.
135+
We can also provide the original packager if you have more packaging needs. The packager is currently in a promotional campaign, $50 .
136136
You can choose our verification program, then select the program you want to package. Then select the configuration file, and that's it. It supports automatically updating the program icon to your software icon.
137137
Configuration file supports configuring encryption and decryption communication and authentication mode
138+
The packer can provide source code. It is written in C++. Please contact us if you need it
138139
![Main Interface](./XEngine_Picture/packer_1.png "Main Interface")
139140

140141
## Participate in contribution

‎README.md‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ Linux or macos:直接运行即可
130130
#### 程序打包服务
131131
如果你没有开发软件能力或者不想自己实现或者想给其他软件添加授权验证,我们也提供了授权打包服务,这个服务可以直接让你的程序打包我们的验证.
132132
程序打包服务是一个付费服务,你可以为任意程序打包加验证.不需要源代码不修改你的程序就可以集成我们的验证服务,当打包完成后,当下次运行,就会先运行我们的验证客户端,验证通过后再运行你提供的程序,非常方便使用.
133-
此服务需要付费,200元3次,不限制x86或者x64位程序,你只需要告诉我们你的服务器地址端口验证模式即可.流程如下:
133+
此服务需要付费,100元3次,不限制x86或者x64位程序,你只需要告诉我们你的服务器地址端口验证模式即可.流程如下:
134134
付费->发送程序给我们->我们打包->测试验证->发送打包程序给你->完成
135135
当打包后,运行程序会优先打开下面的窗口,登录成功后才会启动你的程序,如下图,开启后会显示主界面,登录后主界面会关闭,然后启动你的程序
136136
![主界面](./XEngine_Picture/packet_1.png "主界面")
@@ -143,9 +143,10 @@ Linux or macos:直接运行即可
143143
会自动结束验证计时.支持登录,本地CDKEY验证,注册,充值,找回密码,获取剩余时间.
144144
注意:此功能只是替代打包,如果你想要完全的加密加壳安全性高的,必须自己使用代码开发.
145145
#### 打包器
146-
我们也可以提供原始打包器,如果你有更多打包需求.打包器目前优惠活动中,500元.
146+
我们也可以提供原始打包器,如果你有更多打包需求.打包器目前优惠活动中,200元.
147147
可以选择我们的验证程序,然后选择你要打包的程序.在选择配置文件即可,支持自动更新程序图标为你的软件图标.
148148
配置文件支持配置加解密通信和验证模式
149+
打包器可以提供源码,打包器使用C++ 编写,如果你需要可以联系我们
149150
![主界面](./XEngine_Picture/packer_1.png "主界面")
150151

151152
## 参与贡献

‎XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.def‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ EXPORTS
3939
DBModule_SQLite_AnnouncementDelete
4040
DBModule_SQLite_AnnouncementList
4141

42+
DBModule_SQLite_OAuthInsert
43+
DBModule_SQLite_OAuthDelete
44+
DBModule_SQLite_OAuthList
45+
4246
DBModule_MySQL_Init
4347
DBModule_MySQL_Destroy
4448

@@ -73,4 +77,8 @@ EXPORTS
7377

7478
DBModule_MySQL_AnnouncementInsert
7579
DBModule_MySQL_AnnouncementDelete
76-
DBModule_MySQL_AnnouncementList
80+
DBModule_MySQL_AnnouncementList
81+
82+
DBModule_MySQL_OAuthInsert
83+
DBModule_MySQL_OAuthDelete
84+
DBModule_MySQL_OAuthList

‎XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.cpp‎

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1930,6 +1930,143 @@ bool CDBModule_MySQL::DBModule_MySQL_AnnouncementList(AUTHREG_ANNOUNCEMENT*** pp
19301930
DataBase_MySQL_FreeResult(xhData, xhTable);
19311931
return true;
19321932
}
1933+
/********************************************************************
1934+
函数名称:DBModule_MySQL_OAuthInsert
1935+
函数功能:OAuth插入
1936+
参数.一:pSt_OAuthInfo
1937+
In/Out:In
1938+
类型:数据结构指针
1939+
可空:N
1940+
意思:输入要插入的信息
1941+
返回值
1942+
类型:逻辑型
1943+
意思:是否成功
1944+
备注:
1945+
*********************************************************************/
1946+
bool CDBModule_MySQL::DBModule_MySQL_OAuthInsert(AUTHREG_OAUTHINFO* pSt_OAuthInfo)
1947+
{
1948+
SQLPacket_IsErrorOccur = false;
1949+
1950+
if (NULL == pSt_OAuthInfo)
1951+
{
1952+
SQLPacket_IsErrorOccur = true;
1953+
SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT;
1954+
return false;
1955+
}
1956+
XCHAR tszSQLStr[8192] = {};
1957+
1958+
_xstprintf(tszSQLStr, _X("INSERT INTO `Authorize_OAuth`(tszUserName,tszTokenStr,tszClientID,tszClientKey,tszCreateTime,tszExpirationTime) VALUES('%s','%s','%s','%s','%s','%s')"), pSt_OAuthInfo->tszUserName, pSt_OAuthInfo->tszTokenStr, pSt_OAuthInfo->tszClientID, pSt_OAuthInfo->tszClientKey, pSt_OAuthInfo->tszCreateTime, pSt_OAuthInfo->tszExpirationTime);
1959+
//插入数据库
1960+
if (!DataBase_MySQL_Execute(xhData, tszSQLStr))
1961+
{
1962+
SQLPacket_IsErrorOccur = true;
1963+
SQLPacket_dwErrorCode = DataBase_GetLastError();
1964+
return false;
1965+
}
1966+
return true;
1967+
}
1968+
/********************************************************************
1969+
函数名称:DBModule_SQLite_OAuthDelete
1970+
函数功能:OAuth删除
1971+
参数.一:pSt_OAuthInfo
1972+
In/Out:In
1973+
类型:数据结构指针
1974+
可空:N
1975+
意思:输入要删除的信息
1976+
返回值
1977+
类型:逻辑型
1978+
意思:是否成功
1979+
备注:
1980+
*********************************************************************/
1981+
bool CDBModule_MySQL::DBModule_MySQL_OAuthDelete(AUTHREG_OAUTHINFO* pSt_OAuthInfo)
1982+
{
1983+
SQLPacket_IsErrorOccur = false;
1984+
1985+
if (NULL == pSt_OAuthInfo)
1986+
{
1987+
SQLPacket_IsErrorOccur = true;
1988+
SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT;
1989+
return false;
1990+
}
1991+
XCHAR tszSQLStr[8192] = {};
1992+
1993+
if (_tcsxlen(pSt_OAuthInfo->tszTokenStr) > 0)
1994+
{
1995+
_xstprintf(tszSQLStr, _X("DELETE FROM `Authorize_OAuth` WHERE tszTokenStr = '%s'"), pSt_OAuthInfo->tszTokenStr);
1996+
}
1997+
else
1998+
{
1999+
_xstprintf(tszSQLStr, _X("DELETE FROM `Authorize_OAuth` WHERE tszClientID = '%s'"), pSt_OAuthInfo->tszClientID);
2000+
}
2001+
//插入数据库
2002+
if (!DataBase_MySQL_Execute(xhData, tszSQLStr))
2003+
{
2004+
SQLPacket_IsErrorOccur = true;
2005+
SQLPacket_dwErrorCode = DataBase_GetLastError();
2006+
return false;
2007+
}
2008+
return true;
2009+
}
2010+
/********************************************************************
2011+
函数名称:DBModule_MySQL_OAuthList
2012+
函数功能:OAuth列举
2013+
参数.一:ppppSt_OAuthInfo
2014+
In/Out:Out
2015+
类型:三级指针
2016+
可空:N
2017+
意思:输出列举数据
2018+
参数.二:pInt_ListCount
2019+
In/Out:Out
2020+
类型:整数型指针
2021+
可空:N
2022+
意思:导出数据个数
2023+
返回值
2024+
类型:逻辑型
2025+
意思:是否成功
2026+
备注:
2027+
*********************************************************************/
2028+
bool CDBModule_MySQL::DBModule_MySQL_OAuthList(AUTHREG_OAUTHINFO*** pppSt_OAuthInfo, int* pInt_ListCount)
2029+
{
2030+
SQLPacket_IsErrorOccur = false;
2031+
2032+
__int64u nRow = 0;
2033+
__int64u nColumn = 0;
2034+
XNETHANDLE xhTable = 0;
2035+
XCHAR** ppszResult = NULL;
2036+
XCHAR tszSQLStr[1024] = {};
2037+
_xstprintf(tszSQLStr, _X("SELECT * FROM Authorize_OAuth"));
2038+
2039+
if (!DataBase_MySQL_ExecuteQuery(xhData, &xhTable, tszSQLStr, &nRow, &nColumn))
2040+
{
2041+
SQLPacket_IsErrorOccur = true;
2042+
SQLPacket_dwErrorCode = DataBase_GetLastError();
2043+
return false;
2044+
}
2045+
*pInt_ListCount = (int)nRow;
2046+
BaseLib_Memory_Malloc((XPPPMEM)pppSt_OAuthInfo, (int)nRow, sizeof(AUTHREG_OAUTHINFO));
2047+
//轮训所有内容
2048+
for (__int64u i = 0; i < nRow; i++)
2049+
{
2050+
ppszResult = DataBase_MySQL_GetResult(xhData, xhTable);
2051+
2052+
int nFliedValue = 0;
2053+
_tcsxcpy((*pppSt_OAuthInfo)[i]->tszUserName, ppszResult[nFliedValue]);
2054+
nFliedValue++;
2055+
_tcsxcpy((*pppSt_OAuthInfo)[i]->tszTokenStr, ppszResult[nFliedValue]);
2056+
nFliedValue++;
2057+
_tcsxcpy((*pppSt_OAuthInfo)[i]->tszClientID, ppszResult[nFliedValue]);
2058+
nFliedValue++;
2059+
_tcsxcpy((*pppSt_OAuthInfo)[i]->tszClientKey, ppszResult[nFliedValue]);
2060+
nFliedValue++;
2061+
_tcsxcpy((*pppSt_OAuthInfo)[i]->tszCreateTime, ppszResult[nFliedValue]);
2062+
nFliedValue++;
2063+
_tcsxcpy((*pppSt_OAuthInfo)[i]->tszExpirationTime, ppszResult[nFliedValue]);
2064+
nFliedValue++;
2065+
2066+
}
2067+
DataBase_MySQL_FreeResult(xhData, xhTable);
2068+
return true;
2069+
}
19332070
//////////////////////////////////////////////////////////////////////////
19342071
// 保护函数
19352072
//////////////////////////////////////////////////////////////////////////

‎XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.h‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ class CDBModule_MySQL
5555
bool DBModule_MySQL_AnnouncementInsert(AUTHREG_ANNOUNCEMENT* pSt_Announcement); //公告插入
5656
bool DBModule_MySQL_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* pSt_Announcement); //公告删除
5757
bool DBModule_MySQL_AnnouncementList(AUTHREG_ANNOUNCEMENT*** ppppSt_Announcement, int* pInt_ListCount); //列举所有公告
58+
public:
59+
bool DBModule_MySQL_OAuthInsert(AUTHREG_OAUTHINFO* pSt_OAuthInfo); //插入授权信息
60+
bool DBModule_MySQL_OAuthDelete(AUTHREG_OAUTHINFO* pSt_OAuthInfo); //删除授权信息
61+
bool DBModule_MySQL_OAuthList(AUTHREG_OAUTHINFO*** pppSt_OAuthInfo, int* pInt_ListCount);
5862
protected:
5963
bool DBModule_MySQL_UserPayTime(LPCXSTR lpszUserName, LPCXSTR lpszUserTime, LPCXSTR lpszCardTime, ENUM_VERIFICATION_MODULE_SERIAL_TYPE en_AuthSerialType, ENUM_VERIFICATION_MODULE_SERIAL_TYPE en_AuthUserType); //日期方式充值方式
6064
private:

‎XEngine_Source/AuthorizeModule_Database/DBModule_SQLite/DBModule_SQLite.cpp‎

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1797,6 +1797,139 @@ bool CDBModule_SQLite::DBModule_SQLite_AnnouncementList(AUTHREG_ANNOUNCEMENT***
17971797
DataBase_SQLite_FreeTable(ppszResult);
17981798
return true;
17991799
}
1800+
/********************************************************************
1801+
函数名称:DBModule_SQLite_OAuthInsert
1802+
函数功能:OAuth插入
1803+
参数.一:pSt_OAuthInfo
1804+
In/Out:In
1805+
类型:数据结构指针
1806+
可空:N
1807+
意思:输入要插入的信息
1808+
返回值
1809+
类型:逻辑型
1810+
意思:是否成功
1811+
备注:
1812+
*********************************************************************/
1813+
bool CDBModule_SQLite::DBModule_SQLite_OAuthInsert(AUTHREG_OAUTHINFO *pSt_OAuthInfo)
1814+
{
1815+
SQLPacket_IsErrorOccur = false;
1816+
1817+
if (NULL == pSt_OAuthInfo)
1818+
{
1819+
SQLPacket_IsErrorOccur = true;
1820+
SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT;
1821+
return false;
1822+
}
1823+
XCHAR tszSQLStr[8192] = {};
1824+
1825+
_xstprintf(tszSQLStr, _X("INSERT INTO Authorize_OAuth(tszUserName,tszTokenStr,tszClientID,tszClientKey,tszCreateTime,tszExpirationTime) VALUES('%s','%s','%s','%s','%s','%s')"), pSt_OAuthInfo->tszUserName, pSt_OAuthInfo->tszTokenStr, pSt_OAuthInfo->tszClientID, pSt_OAuthInfo->tszClientKey, pSt_OAuthInfo->tszCreateTime, pSt_OAuthInfo->tszExpirationTime);
1826+
//插入数据库
1827+
if (!DataBase_SQLite_Exec(xhData, tszSQLStr))
1828+
{
1829+
SQLPacket_IsErrorOccur = true;
1830+
SQLPacket_dwErrorCode = DataBase_GetLastError();
1831+
return false;
1832+
}
1833+
return true;
1834+
}
1835+
/********************************************************************
1836+
函数名称:DBModule_SQLite_OAuthDelete
1837+
函数功能:OAuth删除
1838+
参数.一:pSt_OAuthInfo
1839+
In/Out:In
1840+
类型:数据结构指针
1841+
可空:N
1842+
意思:输入要删除的信息
1843+
返回值
1844+
类型:逻辑型
1845+
意思:是否成功
1846+
备注:
1847+
*********************************************************************/
1848+
bool CDBModule_SQLite::DBModule_SQLite_OAuthDelete(AUTHREG_OAUTHINFO* pSt_OAuthInfo)
1849+
{
1850+
SQLPacket_IsErrorOccur = false;
1851+
1852+
if (NULL == pSt_OAuthInfo)
1853+
{
1854+
SQLPacket_IsErrorOccur = true;
1855+
SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT;
1856+
return false;
1857+
}
1858+
XCHAR tszSQLStr[8192] = {};
1859+
if (_tcsxlen(pSt_OAuthInfo->tszTokenStr) > 0)
1860+
{
1861+
_xstprintf(tszSQLStr, _X("DELETE FROM `Authorize_OAuth` WHERE tszTokenStr = '%s'"), pSt_OAuthInfo->tszTokenStr);
1862+
}
1863+
else
1864+
{
1865+
_xstprintf(tszSQLStr, _X("DELETE FROM `Authorize_OAuth` WHERE tszClientID = '%s'"), pSt_OAuthInfo->tszClientID);
1866+
}
1867+
//插入数据库
1868+
if (!DataBase_SQLite_Exec(xhData, tszSQLStr))
1869+
{
1870+
SQLPacket_IsErrorOccur = true;
1871+
SQLPacket_dwErrorCode = DataBase_GetLastError();
1872+
return false;
1873+
}
1874+
return true;
1875+
}
1876+
/********************************************************************
1877+
函数名称:DBModule_SQLite_OAuthList
1878+
函数功能:OAuth列举
1879+
参数.一:ppppSt_OAuthInfo
1880+
In/Out:Out
1881+
类型:三级指针
1882+
可空:N
1883+
意思:输出列举数据
1884+
参数.二:pInt_ListCount
1885+
In/Out:Out
1886+
类型:整数型指针
1887+
可空:N
1888+
意思:导出数据个数
1889+
返回值
1890+
类型:逻辑型
1891+
意思:是否成功
1892+
备注:
1893+
*********************************************************************/
1894+
bool CDBModule_SQLite::DBModule_SQLite_OAuthList(AUTHREG_OAUTHINFO*** ppppSt_OAuthInfo, int* pInt_ListCount)
1895+
{
1896+
SQLPacket_IsErrorOccur = false;
1897+
1898+
int nRow = 0;
1899+
int nColumn = 0;
1900+
XCHAR** ppszResult = NULL;
1901+
XCHAR tszSQLStr[1024] = {};
1902+
1903+
_xstprintf(tszSQLStr, _X("SELECT * FROM Authorize_OAuth"));
1904+
if (!DataBase_SQLite_GetTable(xhData, tszSQLStr, &ppszResult, &nRow, &nColumn))
1905+
{
1906+
SQLPacket_IsErrorOccur = true;
1907+
SQLPacket_dwErrorCode = DataBase_GetLastError();
1908+
return false;
1909+
}
1910+
*pInt_ListCount = nRow;
1911+
1912+
BaseLib_Memory_Malloc((XPPPMEM)ppppSt_OAuthInfo, nRow, sizeof(AUTHREG_OAUTHINFO));
1913+
int nFliedValue = nColumn;
1914+
//轮训所有内容
1915+
for (int i = 0; i < nRow; i++)
1916+
{
1917+
_tcsxcpy((*ppppSt_OAuthInfo)[i]->tszUserName, ppszResult[nFliedValue]);
1918+
nFliedValue++;
1919+
_tcsxcpy((*ppppSt_OAuthInfo)[i]->tszTokenStr, ppszResult[nFliedValue]);
1920+
nFliedValue++;
1921+
_tcsxcpy((*ppppSt_OAuthInfo)[i]->tszClientID, ppszResult[nFliedValue]);
1922+
nFliedValue++;
1923+
_tcsxcpy((*ppppSt_OAuthInfo)[i]->tszClientKey, ppszResult[nFliedValue]);
1924+
nFliedValue++;
1925+
_tcsxcpy((*ppppSt_OAuthInfo)[i]->tszCreateTime, ppszResult[nFliedValue]);
1926+
nFliedValue++;
1927+
_tcsxcpy((*ppppSt_OAuthInfo)[i]->tszExpirationTime, ppszResult[nFliedValue]);
1928+
nFliedValue++;
1929+
}
1930+
DataBase_SQLite_FreeTable(ppszResult);
1931+
return true;
1932+
}
18001933
//////////////////////////////////////////////////////////////////////////
18011934
// 保护函数
18021935
//////////////////////////////////////////////////////////////////////////

‎XEngine_Source/AuthorizeModule_Database/DBModule_SQLite/DBModule_SQLite.h‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ class CDBModule_SQLite
5555
bool DBModule_SQLite_AnnouncementInsert(AUTHREG_ANNOUNCEMENT* pSt_Announcement);
5656
bool DBModule_SQLite_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* pSt_Announcement);
5757
bool DBModule_SQLite_AnnouncementList(AUTHREG_ANNOUNCEMENT*** ppppSt_Announcement, int* pInt_ListCount);
58+
public:
59+
bool DBModule_SQLite_OAuthInsert(AUTHREG_OAUTHINFO* pSt_OAuthInfo);
60+
bool DBModule_SQLite_OAuthDelete(AUTHREG_OAUTHINFO* pSt_OAuthInfo);
61+
bool DBModule_SQLite_OAuthList(AUTHREG_OAUTHINFO*** pppSt_OAuthInfo, int* pInt_ListCount);
5862
protected:
5963
bool DBModule_SQLite_UserPayTime(LPCXSTR lpszUserName, LPCXSTR lpszUserTime, LPCXSTR lpszCardTime, ENUM_VERIFICATION_MODULE_SERIAL_TYPE en_AuthSerialType, ENUM_VERIFICATION_MODULE_SERIAL_TYPE en_AuthUserType);
6064
private:

0 commit comments

Comments
 (0)