Oauth Auth0-从刷新令牌获取id\u令牌
在我们的7+微服务中,我们依赖Auth0Oauth Auth0-从刷新令牌获取id\u令牌,oauth,oauth-2.0,auth0,refresh-token,Oauth,Oauth 2.0,Auth0,Refresh Token,在我们的7+微服务中,我们依赖Auth0id\u令牌。交换refresh\u令牌时(POST myapp.auth0.com/oauth/token),我只得到access\u令牌,而不是id\u令牌 如何使用Auth0的API将refresh\u令牌交换为id\u令牌。从技术上讲,refresh\u令牌授权类型是OAuth 2.0的一部分,id\u令牌是OpenID Connect的一部分,OpenID Connect是构建在OAuth 2.0之上的身份协议 OAuth 2.0的refresh
id\u令牌
。交换refresh\u令牌时(POST myapp.auth0.com/oauth/token
),我只得到access\u令牌
,而不是id\u令牌
如何使用Auth0的API将refresh\u令牌
交换为id\u令牌
。从技术上讲,refresh\u令牌
授权类型是OAuth 2.0的一部分,id\u令牌
是OpenID Connect的一部分,OpenID Connect是构建在OAuth 2.0之上的身份协议
OAuth 2.0的refresh_令牌
grant类型允许续订访问令牌(仅限)。OpenID Connect没有定义除此之外的其他行为,原因很好:id\u令牌
被定义为用户身份验证事件的结果,因此没有用户交互的“身份验证刷新”不会产生新的id\u令牌
。同时,用户可能已离开、注销或删除其帐户
刷新id\u令牌
应该通过再次将用户发送到OpenID连接提供程序来完成,而不是自动使用刷新令牌。刷新令牌授权似乎是针对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)
}
}
我可以得到刷新令牌的任何演示吗@汉斯