在Expo应用中使用Auth0获取id_token

时间:2018-12-10 20:22:23

标签: react-native expo auth0

我正在按照以下示例在新的Expo / React Native应用中实现Auth0身份验证: https://github.com/expo/auth0-example

我唯一更改的是scope: 'openid profile',在示例中为scope: 'openid name',尽管我也使用示例中的代码进行了尝试。

如以下屏幕截图所示,我得到的是access_token而不是id_tokenenter image description here

以下是通过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

1 个答案:

答案 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工作。