gpt4 book ai didi

react-native - React Native Google Authenticate with Django Allauth 返回 "Incorrect value"(iOS/Android)

转载 作者:行者123 更新时间:2023-12-04 07:51:36 25 4
gpt4 key购买 nike

我正在尝试使用 react native ios 和 android 执行社交身份验证(使用 Google),后端使用 Django。请注意,此处不涉及 Firebase。
问题概述
当用户通过谷歌进行身份验证时,前端的 React Native Google Signin 会返回 (i) access_token 和 (2) 代码。使用 django rest auth,我们向后端服务器发送 post 请求并返回“non_field_errors: ["Incorrect value"]
使用的插件:
React Native Google Sigin
Django All Auth
Django Rest Auth
进程
Google Cloud Console 设置(OAuth 2.0 客户端 ID):
在 Google Cloud Console 中设置了 3 种类型

  • A) Web 应用程序(ClientId + Secrete)
  • B) Android(仅 ClientId)
  • C) iOS(仅 ClientId)

  • 在前端(React Native Google Signin)
       async componentDidMount () {
    GoogleSignin.configure({
    webClientId: 'ABC-123', (i.e. A above)
    iosClientId: 'ABC-456', (i.e. C above)
    });
    }
    在后端 (Django Allauth)
    1 模型对象被设置,谷歌,根据谷歌文档 A) Web 应用程序 (ClientId + Secrete)
    用户通过前端登录
    当用户在手机、Android 或 iOS 上的应用程序中使用 google 进行身份验证时,会返回 token 和代码。通过 Django Rest Auth {access_token: 'cdeasdlkjla', code:'adkj'} 发送它返回“non_field_errors: ["Incorrect value"]
    想法!?

    最佳答案

    在@Kapobajza 响应的帮助下,我发现了问题。
    Django AllAuth Google Social Auth 接受“access_token”
    React Native Google Sigin 的默认值是“id_token”
    请注意,'access_token' =/= 'id_token'
    因此,有两种解决方案:

  • 后端:Django AllAuth 应该支持 id_token。在撰写本文时,它没有。
    下面的链接中有一个 Unresolved 票证,这导致了一种手动支持它的方法
    https://github.com/pennersr/django-allauth/issues/1983

  • 或者:
  • 前端:React Native Google Sigin 可以生成访问 token ,只需一小步。概述如下, Step4

  • How to get accessToken of React Native GoogleSignIn?
    最佳解决方案是 2

    关于react-native - React Native Google Authenticate with Django Allauth 返回 "Incorrect value"(iOS/Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66944143/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com