我正在按照以下示例在新的Expo / React Native应用中实现Auth0身份验证: https://github.com/expo/auth0-example
我唯一更改的是scope: 'openid profile'
,在示例中为scope: 'openid name'
,尽管我也使用示例中的代码进行了尝试。
如以下屏幕截图所示,我得到的是access_token
而不是id_token
:
以下是通过Auth0进行身份验证的代码:
_loginWithAuth0 = async () => {
const redirectUrl = AuthSession.getRedirectUrl();
console.log(`Redirect URL (add this to Auth0): ${redirectUrl}`);
const result = await AuthSession.startAsync({
authUrl: `${auth0Domain}/authorize` + toQueryString({
client_id: auth0ClientId,
response_type: 'token',
scope: 'openid profile',
redirect_uri: redirectUrl,
}),
});
console.log(result);
if (result.type === 'success') {
this.handleParams(result.params);
}
}
我尝试将response_type
更改为token id_token
,但抛出错误,提示配置错误。
如何获得id_token
?
答案 0 :(得分:0)
返回的令牌由response_type
而不是scope
定义。对于ID令牌,范围确定令牌中返回的内容。您需要response_type: 'id_token'
。
您可以在此处详细了解其工作方式:https://auth0.com/docs/tokens/id-token#control-the-contents-of-an-id-token
完全公开,我为Auth0工作。