1111// History:
1212*********************************************************************/
1313//////////////////////////////////////////////////////////////////////////
14+ // 导出定义
15+ //////////////////////////////////////////////////////////////////////////
16+ //OAUTH2验证类型
17+ #define XENGINE_VERIFICATION_OAUTH_GRANDTYPE_AUTHORIZATION_CODE _X("authorization_code") //授权码
18+ #define XENGINE_VERIFICATION_OAUTH_GRANDTYPE_CLIENT_CREDENTIALS _X("client_credentials") //客户端凭据
19+ #define XENGINE_VERIFICATION_OAUTH_GRANDTYPE_PASSWORD _X("password") //密码
20+ #define XENGINE_VERIFICATION_OAUTH_GRANDTYPE_REFRESH_TOKEN _X("refresh_token") //刷新令牌
21+ //OAUTH2错误类型
22+ #define ERROR_XENGINE_VERIFICATION_OAUTH_INVALID_REQUEST _X("invalid_request") //请求不完整或格式错误(缺少参数、无效参数、重定向 URI 不匹配等
23+ #define ERROR_XENGINE_VERIFICATION_OAUTH_INVALID_CLIENT _X("invalid_client") //无效的客户端
24+ #define ERROR_XENGINE_VERIFICATION_OAUTH_INVALID_GRANT _X("invalid_grant") //无效的授权
25+ #define ERROR_XENGINE_VERIFICATION_OAUTH_UNAUTHORIZED_CLIENT _X("unauthorized_client") //客户端未授权
26+ #define ERROR_XENGINE_VERIFICATION_OAUTH_UNSUPPORTED_GRANT_TYPE _X("unsupported_grant_type") //不支持的授权类型
27+ #define ERROR_XENGINE_VERIFICATION_OAUTH_UNSUPPORTED_TOKEN_TYPE _X("unsupported_token_type") //不支持的令牌类型
28+ #define ERROR_XENGINE_VERIFICATION_OAUTH_INVALID_SCOPE _X("invalid_scope") //无效的范围
29+ #define ERROR_XENGINE_VERIFICATION_OAUTH_ACCESS_DENIED _X("access_denied") //用户拒绝授权
30+ #define ERROR_XENGINE_VERIFICATION_OAUTH_SERVER_ERROR _X("server_error") //服务器错误
31+ #define ERROR_XENGINE_VERIFICATION_OAUTH_UNSUPPORTED_RESPONSE_TYPE _X("unsupported_response_type") //不支持的响应类型
32+ #define ERROR_XENGINE_VERIFICATION_OAUTH_TEMPORARILY_UNAVAILABLE _X("temporarily_unavailable") //临时不可用
33+ #define ERROR_XENGINE_VERIFICATION_OAUTH_INVALID_TOKEN _X("invalid_token") //无效的令牌
34+ #define ERROR_XENGINE_VERIFICATION_OAUTH_EXPIRED_TOKEN _X("expired_token") //令牌已过期
35+ #define ERROR_XENGINE_VERIFICATION_OAUTH_INSUFFICIENT_SCOPE _X("insufficient_scope") //范围不足
36+ //////////////////////////////////////////////////////////////////////////
37+ // 导出结构体
38+ //////////////////////////////////////////////////////////////////////////
39+ typedef struct
40+ {
41+ XCHAR tszClientID [128 ]; // 客户端ID
42+ XCHAR tszClientCode [128 ]; // 客户端代码,authorization_code有效
43+ XCHAR tszClientSecert [128 ]; // 客户端秘钥
44+ XCHAR tszClientUser [128 ]; // 客户端用户名,仅PASSWORD授权类型使用
45+ XCHAR tszClientPass [128 ]; // 客户端密码,仅PASSWORD授权类型使用
46+ XCHAR tszClientRefresh [128 ]; // 客户端刷新令牌,仅REFRESH_TOKEN授权类型使用
47+ XCHAR tszGrandType [64 ]; // 授权类型
48+ }VERIFICATION_OAUTHINFO ;
49+ typedef struct
50+ {
51+ XCHAR tszTokenAccess [XPATH_MID ]; // 访问的TOKEN
52+ XCHAR tszTokenRefresh [XPATH_MID ]; // 刷新的TOKEN
53+ XCHAR tszTokenType [128 ]; // 授权类型
54+ int nExpiredTime ; // 过期时间
55+ }VERIFICATION_TOKENINFO ;
56+ //////////////////////////////////////////////////////////////////////////
1457// 导出函数
1558//////////////////////////////////////////////////////////////////////////
1659extern "C" XLONG Verification_GetLastError (int * pInt_ErrorCode = NULL );
@@ -234,4 +277,104 @@ extern "C" bool Verification_HTTP_Basic(LPCXSTR lpszUser, LPCXSTR lpszPass, XCHA
234277 意思:是否成功
235278备注:
236279*********************************************************************/
237- extern "C" bool Verification_HTTP_Digest (LPCXSTR lpszUser , LPCXSTR lpszPass , LPCXSTR lpszMethod , XCHAR * * pptszListHdr , int nHdrCount , LPCXSTR lpszNonceStr = NULL , LPCXSTR lpszOpaqueStr = NULL );
280+ extern "C" bool Verification_HTTP_Digest (LPCXSTR lpszUser , LPCXSTR lpszPass , LPCXSTR lpszMethod , XCHAR * * pptszListHdr , int nHdrCount , LPCXSTR lpszNonceStr = NULL , LPCXSTR lpszOpaqueStr = NULL );
281+ /************************************************************************/
282+ /* OAUTH验证导出函数 */
283+ /************************************************************************/
284+ /********************************************************************
285+ 函数名称:Verification_OAuth_Parse
286+ 函数功能:解析OAUTH验证请求信息
287+ 参数.一:pSt_OAuthInfo
288+ In/Out:Out
289+ 类型:字符指针
290+ 可空:N
291+ 意思:输出解析到的信息
292+ 参数.二:lpszUrl
293+ In/Out:Out
294+ 类型:常量字符指针
295+ 可空:Y
296+ 意思:输入请求的URL参数
297+ 参数.三:lpszMSGBuffer
298+ In/Out:In
299+ 类型:常量字符指针
300+ 可空:N
301+ 意思:输入负载数据类型
302+ 返回值
303+ 类型:逻辑型
304+ 意思:是否成功
305+ 备注:OAuth验证可以是在URL地址或者负载数据.
306+ *********************************************************************/
307+ extern "C" bool Verification_OAuth_Parse (VERIFICATION_OAUTHINFO * pSt_OAuthInfo , LPCXSTR lpszUrl = NULL , LPCXSTR lpszMSGBuffer = NULL );
308+ /********************************************************************
309+ 函数名称:Verification_OAuth_PacketToken
310+ 函数功能:打包处理函数
311+ 参数.一:ptszMSGBuffer
312+ In/Out:Out
313+ 类型:字符指针
314+ 可空:N
315+ 意思:输出打好包的验证信息
316+ 参数.二:pInt_MSGLen
317+ In/Out:Out
318+ 类型:整数型指针
319+ 可空:N
320+ 意思:输出打包的大小
321+ 参数.三:lpszAccessToken
322+ In/Out:In
323+ 类型:常量字符指针
324+ 可空:N
325+ 意思:输入要打包的访问token
326+ 参数.四:lpszRefreshToken
327+ In/Out:In
328+ 类型:常量字符指针
329+ 可空:Y
330+ 意思:输入刷新的TOKEN
331+ 参数.五:lpszTokenType
332+ In/Out:In
333+ 类型:常量字符指针
334+ 可空:Y
335+ 意思:输入TOKEN类型,默认为Bearer
336+ 参数.六:nExpiredTime
337+ In/Out:In
338+ 类型:常量字符指针
339+ 可空:Y
340+ 意思:输入token过期时间,默认为3600秒
341+ 返回值
342+ 类型:逻辑型
343+ 意思:是否成功
344+ 备注:
345+ *********************************************************************/
346+ extern "C" bool Verification_OAuth_PacketToken (XCHAR * ptszMSGBuffer , int * pInt_MSGLen , LPCXSTR lpszAccessToken , LPCXSTR lpszRefreshToken = NULL , LPCXSTR lpszTokenType = _X ("Bearer" ), int nExpiredTime = 3600 );
347+ /********************************************************************
348+ 函数名称:Verification_OAuth_PacketError
349+ 函数功能:错误打包处理函数
350+ 参数.一:ptszMSGBuffer
351+ In/Out:Out
352+ 类型:字符指针
353+ 可空:N
354+ 意思:输出打好包的信息
355+ 参数.二:pInt_MSGLen
356+ In/Out:Out
357+ 类型:整数型指针
358+ 可空:N
359+ 意思:输出打包的大小
360+ 参数.三:lpszOAuthError
361+ In/Out:In
362+ 类型:常量字符指针
363+ 可空:N
364+ 意思:输入-OAUTH2错误类型,必须参考头定义的错误信息
365+ 参数.四:lpszErrorDescription
366+ In/Out:In
367+ 类型:常量字符指针
368+ 可空:Y
369+ 意思:错误描述信息
370+ 参数.五:lpszErrorUri
371+ In/Out:In
372+ 类型:常量字符指针
373+ 可空:Y
374+ 意思:输入错误URI地址
375+ 返回值
376+ 类型:逻辑型
377+ 意思:是否成功
378+ 备注:
379+ *********************************************************************/
380+ extern "C" bool Verification_OAuth_PacketError (XCHAR * ptszMSGBuffer , int * pInt_MSGLen , LPCXSTR lpszOAuthError , LPCXSTR lpszErrorDescription = NULL , LPCXSTR lpszErrorUri = NULL );
0 commit comments