verzth / tcx-client
TCX 客户端 - 客户端-服务器事务(单向-双向)认证模块插件
1.1.0
2019-08-16 03:17 UTC
Requires
- php: >=7.0
- illuminate/http: ^5.6
- illuminate/support: ^5.6
- ixudra/curl: ^6.16
- symfony/http-foundation: ^4
- symfony/http-kernel: ^4
Requires (Dev)
- fzaninotto/faker: ^1.8
This package is auto-updated.
Last update: 2024-09-16 14:46:23 UTC
README
TCX 是用于确保 API 服务器安全的认证模块。
它采用 OAuth2 方案,但使用更简单的方案,无需定义作用域即可为客户端-服务器提供认证。
-
认证类型,TCX 支持三种认证类型
- 单向事务代码 (OWTC):客户端只需使用 app_id 和 app_public 访问服务器 API。
- 双向事务代码 (TWTC):客户端必须使用 app_id 和 app_public 获取访问令牌,然后可以使用它来访问 API。
- 免费事务代码 (FTC):客户端使用主令牌访问 API,无需对每个请求请求令牌。您需要手动生成主令牌。
客户端需要在每次 API 请求中发送 X-TCX-TYPE 标头来指定类型。
-
如何生成凭证
- app_pass 或 X-TCX-APP-PASS,它可以通过将令牌的明文(参数、时间或无)与应用程序公钥和客户端动态令牌进行 SHA1 哈希来生成。客户端需要将给定的动态令牌附加到哈希结果,并用冒号(:)分隔,然后使用 base64 加密。
-
参数基数
示例参数
abc=123 _xyz=789 foo=bar def=456 bar=ghi预期令牌
_xyz=789&abc=123&bar=ghi&def=456&foo=bar -
时间基数
tcx_datetime=YYYYMMDDHHmmss示例
tcx_datetime=20181230235959 // For 23:59:59, 30 December 2018 -
无,只需使用应用程序密码和客户端动态令牌。
-
- token 或 X-TCX-TOKEN,它在客户端授权给服务器时提供,但您需要使用 base64 进行加密。
- app_pass 或 X-TCX-APP-PASS,它可以通过将令牌的明文(参数、时间或无)与应用程序公钥和客户端动态令牌进行 SHA1 哈希来生成。客户端需要将给定的动态令牌附加到哈希结果,并用冒号(:)分隔,然后使用 base64 加密。
-
认证头。
- 类型 OWTC
- 'X-TCX-TYPE': 'OWTC'.
- 'X-TCX-APP-ID': 客户端 ID。
- 'X-TCX-APP-PASS': 客户端密码。
- 类型 TWTC
- 'X-TCX-TYPE': 'TWTC'.
- 'X-TCX-APP-ID': 客户端 ID。
- 'X-TCX-APP-PASS': 客户端密码。
- 'X-TCX-TOKEN': 通过授权获得的访问令牌。
- 类型 FTC
- 'X-TCX-TYPE': 'FTC'.
- 'X-TCX-APP-ID': 客户端 ID。
- 'X-TCX-APP-PASS': 客户端密码。
- 'X-TCX-TOKEN': 主访问令牌。
- 类型 OWTC
-
可用功能。
- getID() - 获取应用程序 ID。
- getSecret() - 获取应用程序密钥。
- getPublic() - 获取应用程序公钥。
- getTokenType() - 获取令牌授权类型模式。
- isDebug() - 检查调试状态。
- getTCXPass(&$params) - 获取应用程序密码。
- getTCXMasterKey($encrypt=false) - 获取主令牌密钥。
- getTCXAccess($pass, $datetime=false, $encrypt=false) - 获取访问令牌密钥。
-
响应状态。
示例响应
{ "status": 0, "status_code": "TCXREQ", "status_number": "705000", "status_message": "TCX Authentication Required" }