与Google-Signin和React-Native的跨平台身份验证差异

时间:2016-06-24 09:40:00

标签: oauth react-native google-signin

我尝试使用react-native编写的移动应用程序实现后端身份验证。我设法让它与Android一起工作,但我遇到了iOS问题。

对于Android, webClientId 会出现在生成的令牌中的 aud 字段中,后者是后端检查的令牌。但是在iOS上,它是 iOSClientId 。因此iOS上的身份验证失败。

配置GoogleSignin模块:

GoogleSignin.configure({
    scopes: [], // what API you want to access on behalf of the user, default is email and profile
    iosClientId: '817980298693-[...].apps.googleusercontent.com', // only for iOS
    webClientId: '181764353768-fdc[...].apps.googleusercontent.com', // client ID of type WEB for your server (needed to verify user ID and offline access)
});

iOS上生成的令牌的内容(来自https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=):

{
  "iss": "https://accounts.google.com",
  "aud": "817980298693-[...].apps.googleusercontent.com",
  "azp": "817980298693-[...].apps.googleusercontent.com",
  [...]
}

Android上生成的令牌的内容(来自https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=):

{
  "iss": "https://accounts.google.com",
  "aud": "181764353768-fdc[...].apps.googleusercontent.com",
  "azp": "181764353768-2rs[...].apps.googleusercontent.com",
  [...]
}

所以我的问题是:

  • 在iOS上生成的令牌中,webClientId无处显示是否正常?

  • 我应该只检查后端的客户端ID,还是有办法在两个平台上都有相同的行为?

感谢您的帮助!

0 个答案:

没有答案