認証とアクセス許可
1 Tokenを取得する
1.1 リクエストアドレス
| プロトコル | URL | メソッド |
|---|---|---|
| HTTP | https://api.voice.dolphin-ai.jp/platform/v1/auth/online/token | POST |
1.2 リクエストパラメータ
Headers
| パラメータ名 | パラメータ値 | 必須 |
|---|---|---|
| Content-Type | application/json | Yes |
Body
| 名前 | タイプ | 必須 | メモ |
|---|---|---|---|
| app_id | string | はい | アプリケーションID |
| timestamp | integer | はい | タイムスタンプ |
| signature | string | はい | 生成された署名 |
1.3 戻りデータ
| 名前 | タイプ | メモ |
|---|---|---|
| status | string | 状態コード(000000は成功、その他は失敗) |
| message | string | 状態情報 |
| data | object | |
| ├─ app_id | string | appID |
| ├─ token | string | token |
| ├─ expiration_time | number | 作成から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計算方法
-
signature以外のリクエストパラメータを辞書式に並べ替えます。 -
規則化されたリクエスト文字列を構築します。例:
app_id=XXXX-XXXX-XXXX&secret=XXXX-XXXX-XXXX×tamp=1234567890 -
あなたの
appSecretに基づいて、ステップ2で構築した署名待ち文字列を使用して HMAC-SHA1 アルゴリズムを通じて対応する数値署名を計算します。HMAC-SHA1(stringToSign, appSecret) -
得られた結果にbase64エンコードして、
signatureを得ます。 -
バックエンドで生成した数字署名のサンプルコード
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 + "×tamp=" + timestamp
signature = _hmac_sha1(string_to_sign, app_secret)2 Tokenを使用する
HTTPプロトコルを使用してサーバー側の関連インターフェイスにアクセスする際には、身分を認証するために、以下のようにHTTPヘッダーの形式で Token 、 AppId などの情報をリクエストに含めてください。
| ヘッダー名前 | ヘッダー値 |
|---|---|
| Authorization | 標準のHTTPヘッダーで、認証情報を設定します。 要求された形式は、標準の Bearer ${Token} の形式である必要があります。Bearer の後ろに空白が必要です。 |
3 Tips
AppSecret をクライアント側に保存しないでください。クライアント側に AppSecret を保存すると、第三者に盗まれる可能性があります。
最良の方法は、AppSecret を安全なサーバー側に保存し、サーバー側で AppID と AppSecret を使ってクライアント側のトークンを定期的に更新することです。さらに、トークンを安全なチャンネル(例:安全的なTLS長期接続)を通じてクライアント側に配布します。