私たちの7つのマイクロサービスでは、Auth0 id_token
に依存しています。 refresh_token
(POST myapp.auth0.com/oauth/token
)を交換すると、ではなく、access_token
が返ってきます。Auth0 - refresh_tokenからid_tokenを取得
id_token
のrefresh_token
をAuth0のAPIと交換するにはどうすればよいですか?
私たちの7つのマイクロサービスでは、Auth0 id_token
に依存しています。 refresh_token
(POST myapp.auth0.com/oauth/token
)を交換すると、ではなく、access_token
が返ってきます。Auth0 - refresh_tokenからid_tokenを取得
id_token
のrefresh_token
をAuth0のAPIと交換するにはどうすればよいですか?
リフレッシュトークンは、Auth0の新しいAPI認証機能のためのものです。私が探していたエンドポイントは/delegation
でした。
例のNode.jsコード:
const tokenClient = axios.create({
baseURL: `https://${env.AUTH0_DOMAIN}`,
headers: {
'content-type': 'application/json'
}
})
const refreshTokenClient = {
getAccessToken: (refreshToken) => {
// The official Node.js SDK for Auth0 does not
// support this it would seem (it forces passing id_token)
return tokenClient.post('/delegation', {
client_id: env.AUTH0_CLIENT_ID,
target: env.AUTH0_CLIENT_ID,
grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
refresh_token: refreshToken,
scope: 'openid',
api_type: 'auth0'
}).then(r => r.data)
}
}
技術的には、refresh_token
グラントタイプはOAuth 2.0の一部であり、id_token
はOAuth 2.0の上に構築されたIDプロトコルであるOpenID Connectの一部です。
refresh_token
グラントタイプのOAuth 2.0では、アクセストークンの更新が可能です(唯一)。正当な理由からOpenID Connectはそれ以上の追加の動作を定義していません。id_token
はユーザ認証イベントの結果として定義され、ユーザの介入なしの "認証リフレッシュ"は新しいid_token
にはなりません。ユーザは、その間に辞めた、ログアウトした、またはアカウントを削除した可能性があります。
id_token
をリフレッシュするには、ユーザーをOpenID Connect Providerに再度送信し、リフレッシュトークンを自律的に使用しないでください。
私は角度のため、リフレッシュトークンのいずれかのデモを得ることができますか? @ハンス –