2017-03-05 5 views
0

私たちの7つのマイクロサービスでは、Auth0 id_tokenに依存しています。 refresh_tokenPOST myapp.auth0.com/oauth/token)を交換すると、ではなく、access_tokenが返ってきます。Auth0 - refresh_tokenからid_tokenを取得

id_tokenrefresh_tokenをAuth0のAPIと交換するにはどうすればよいですか?

答えて

0

リフレッシュトークンは、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) 
    } 
} 
1

技術的には、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に再度送信し、リフレッシュトークンを自律的に使用しないでください。

+0

私は角度のため、リフレッシュトークンのいずれかのデモを得ることができますか? @ハンス –

関連する問題