SkyWay Admin Auth Token
SkyWay Admin Auth Tokenは、SkyWay Channel APIやSkyWay Recording APIなどのアプリケーションの管理者(サーバー)用APIを利用する際に必要な、認証のためのトークンです。
トークン検証の際、ペイロードに記載された有効期限確認が行われます。
本トークンをクライアントアプリケーションに提供しないよう注意してください。管理者(サーバー)用APIを利用されてしまう恐れがあります。
形式
SkyWay Admin Auth TokenはJWT形式です。
ペイロード部は以下の通りです。
クレーム | 必須 | 形式 | 説明 |
---|---|---|---|
iat | ✔️ | UNIX タイムスタンプ | トークンが発行された日時 |
jti | ✔️ | string (UUID v4) | トークンのユニークな id |
exp | ✔️ | UNIX タイムスタンプ | このトークンが無効になる時間を表すタイムスタンプ |
appId | ✔️ | string(UUID v4) | アプリケーションID |
iat
はトークンが発行された日時を示します。検証されるタイミングより後の時刻が iat
として指定されているとエラーになります。ただし、時刻同期のズレを考慮して +2分
まで許容されます。
jti
は、トークンを一意に識別するための値です。トークン生成時に UUID v4 を生成し、設定する必要があります。
exp
は、このトークンが無効になる時間を表すタイムスタンプです。この値を過ぎた時刻において、このトークンを用いたリクエストは失敗します。iat
で示した時刻から +3日
を超えた時刻を設定するとエラーになります。
例
{ "iat": 1706754878, "jti": "ba51311f-599d-47ca-a51d-df371fa750e7", "exp": 1706854878, "appId": "ac8adbc8-a2ff-4c41-9f5e-fdaed5e1e65e" }
作成方法の例
Node.jsでの作成方法を以下に示します。
const jwt = require("jsonwebtoken"); const crypto = require("crypto"); const payload = { iat: Date.now() / 1000, jti: crypto.randomUUID(), exp: Date.now() / 1000 + 60 * 60 * 24 * 3, appId: "アプリケーションIDを記載します", }; const SECRET_KEY = "シークレットキーを記載します"; const token = jwt.sign(payload, SECRET_KEY); console.log(token)