Logo

認証とアクセス許可

1 Tokenを取得する

1.1 リクエストアドレス

1.2 リクエストパラメータ

Headers

パラメータ名パラメータ値必須
Content-Typeapplication/jsonYes

Body

名前タイプ必須メモ
app_idstringはいアプリケーションID
timestampintegerはいタイムスタンプ
signaturestringはい生成された署名

1.3 戻りデータ

名前タイプメモ
statusstring状態コード(000000は成功、その他は失敗)
messagestring状態情報
dataobject
├─ app_idstringappID
├─ tokenstringtoken
├─ expiration_timenumber作成から7日間で期限切れになります

1.4 戻り値例

{
    "status": "000000",
    "message": "success",
    "data": {
        "app_id": "fb5c3de6-a247-46f4-987f-420f9d14a956",
        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6***SL_XI",
        "expiration_time": 1690370423
    }
}

1.5 Signature計算方法

  1. signature 以外のリクエストパラメータを辞書式に並べ替えます。

  2. 規則化されたリクエスト文字列を構築します。例:

    app_id=XXXX-XXXX-XXXX&secret=XXXX-XXXX-XXXX&timestamp=1234567890
  3. あなたの appSecret に基づいて、ステップ2で構築した署名待ち文字列を使用して HMAC-SHA1 アルゴリズムを通じて対応する数値署名を計算します。

    HMAC-SHA1(stringToSign, appSecret)
  4. 得られた結果にbase64エンコードして、 signature を得ます。

  5. バックエンドで生成した数字署名のサンプルコード

import hashlib
import hmac
def _hmac_sha1(data, secret):
  return str(base64.b64encode(hmac.new(bytes(secret, 'utf-8'), bytes(data, 'utf-8'),
                                       hashlib.sha1).digest()), 'utf-8')
timestamp = str(int(time.time()))
string_to_sign = "app_id=" + app_id + "&secret=" + secret + "&timestamp=" + timestamp
signature = _hmac_sha1(string_to_sign, app_secret)

2 Tokenを使用する

HTTPプロトコルを使用してサーバー側の関連インターフェイスにアクセスする際には、身分を認証するために、以下のようにHTTPヘッダーの形式で TokenAppId などの情報をリクエストに含めてください。

ヘッダー名前ヘッダー値
Authorization標準のHTTPヘッダーで、認証情報を設定します。
要求された形式は、標準の Bearer ${Token} の形式である必要があります。Bearer の後ろに空白が必要です。

3 Tips

AppSecret をクライアント側に保存しないでください。クライアント側に AppSecret を保存すると、第三者に盗まれる可能性があります。

最良の方法は、AppSecret を安全なサーバー側に保存し、サーバー側で AppID と AppSecret を使ってクライアント側のトークンを定期的に更新することです。さらに、トークンを安全なチャンネル(例:安全的なTLS長期接続)を通じてクライアント側に配布します。