tokenly/hmac-auth

Tokenly API 的 HMAC 验证

v1.2.0 2017-11-08 15:06 UTC

This package is not auto-updated.

Last update: 2024-09-12 15:40:04 UTC


README

Tokenly 的 HMAC 验证组件。

Build Status

身份验证

为了验证使用此组件的 HTTP 请求,您必须在请求中包含 3 个 HTTP 标头

  1. X-Tokenly-Auth-Api-Token
  2. X-Tokenly-Auth-Nonce
  3. X-Tokenly-Auth-Signature

要生成这些标头,您需要一个 API 令牌和秘密 API 密钥。

假设我的 API 令牌是 TWKTkwIQDTvirh6D,我的 API 秘密密钥是 Kun2M2UladalYAeUvXyiKWhFuwrsmSreM841K45O。以下是每个标头的说明。

X-Tokenly-Auth-Api-Token

此令牌仅仅是 API 令牌。

示例: X-Tokenly-Auth-Api-Token: TWKTkwIQDTvirh6D

X-Tokenly-Auth-Nonce

nonce 标头是当前的 Unix 时间戳(以秒为单位)。

示例: X-Tokenly-Auth-Nonce: 1457530047

X-Tokenly-Auth-Signature

签名是使用 sha256 HMAC 编码的 base64 字符串。哈希密钥是 API 密钥。消息是使用以下数据生成的

{METHOD}\n
{URL}\n
{PARAMETERS}\n
{API TOKEN}\n
{NONCE}

{METHOD} 是 HTTP 方法,如 GET、POST、PUT、DELETE {URL} 是 API 端点的完整 URL {PARAMETERS} 是必需的,应该是一个表示参数的 JSON 编码字符串。对于空参数,使用 {}。{API TOKEN} 和 {NONCE} 与发送到标头的值相同。

项目由单个换行符分隔。

在计算 HMAC 后,以 base64 格式编码数据。

示例

使用上述值和 GET 请求 https://www.example.com/api/v1/mystuff,签名标头将是

X-Tokenly-Auth-Signature: hZ6SDgcZzo5AYrS9yopEQo068ax0NojG/CfXWG+RJEA