我尝试使用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,还是有办法在两个平台上都有相同的行为?
感谢您的帮助!