React native React Native Google Authentication with Django Allauth returns“;“值不正确”;(iOS/Android)
我正在尝试使用react原生ios和android,在后端使用Django(谷歌)执行社会身份验证。注意,此处不涉及firebase 问题概述 前端的React Native Google Signin在用户通过Google身份验证时返回(i)access_令牌和(2)代码。使用django rest auth,我们向后端服务器发送post请求,并返回“非字段错误:[”错误值“] 使用的插件: 过程 谷歌云控制台设置(OAuth 2.0客户端ID): 谷歌云控制台中设置了3种类型React native React Native Google Authentication with Django Allauth returns“;“值不正确”;(iOS/Android),react-native,django-allauth,django-rest-auth,React Native,Django Allauth,Django Rest Auth,我正在尝试使用react原生ios和android,在后端使用Django(谷歌)执行社会身份验证。注意,此处不涉及firebase 问题概述 前端的React Native Google Signin在用户通过Google身份验证时返回(i)access_令牌和(2)代码。使用django rest auth,我们向后端服务器发送post请求,并返回“非字段错误:[”错误值“] 使用的插件: 过程 谷歌云控制台设置(OAuth 2.0客户端ID): 谷歌云控制台中设置了3种类型 A)
- A) Web应用程序(ClientId+Secret)
- B) Android(仅限ClientId)
- C) iOS(仅限客户端ID)
思想 在@Kapobajza回复的帮助下,我发现了这个问题 Django AllAuth Google Social Auth接受“访问令牌” React Native Google Sigin的默认值为“id_token” 请注意,“访问\u令牌”=/=“id\u令牌” 因此,有两种解决方案:
最好的解决方案是2据我所知,您在移动端的设置看起来不错。可能您没有正确设置后端。也许这个答案对网络版很有帮助,我使用的是“react google login”,它返回的访问令牌在后端运行良好。在相同的设置下,iOS/Android操作系统不断失败。我尝试在alluath模型设置中交换clientID,但没有成功。谢谢Kapobajza,问题是本地google signin在初始步骤生成id_令牌,而不是access_令牌。id\u令牌=/=访问\u令牌。只需要几行额外的线路就可以获得访问令牌。现在一切都好了!
async componentDidMount () {
GoogleSignin.configure({
webClientId: 'ABC-123', (i.e. A above)
iosClientId: 'ABC-456', (i.e. C above)
});