iOS Google 登录和 Python 后端上的令牌身份验证不起作用

问题描述 投票:0回答:1

在我的后端,我尝试使用以下代码在我的 iphone 模拟器上使用 google 成功登录后返回的 auth_code 中提取凭据:

credentials = client.credentials_from_clientsecrets_and_code(
        CLIENT_SECRET_FILE,
        ['https://www.googleapis.com/auth/calendar.readonly'],
        auth_code,
    )

在 iOS 上通过融合 GIDSignIn 获得身份验证代码,并将其传递到我的 Python FastAPI 服务器以调用上面的代码。但我不断收到

request_uri_mismatch
错误:

oauth2client.client.FlowExchangeError: redirect_uri_mismatchBad Request

我知道客户端是一个已弃用的库,但我也尝试了较新的 google-auth 库,它们使用 Flow 并返回相同的错误。

我已经广泛关注并重新检查了 Google 的教程:https://developers.google.com/identity/sign-in/ios/offline-access。 我还参考了其他 Stack Overflow 答案并广泛检查了我启用的重定向 url,但由于某种原因它仍然不起作用

有效的是我尝试验证 ID 令牌,并且工作正常并正确返回电子邮件和用户属性

verified_info = id_token_verifier.verify_oauth2_token(id_token, requests.Request(), CLIENT_ID)

我使用 iOS 客户端凭据和后端凭据,这是我的凭据:

后端:

iOS:

google-api google-oauth google-signin oauth2client
1个回答
0
投票

浏览了几十个其他答案后,终于找到一位绅士的建议,只需添加

redirect_uri=''
,如下所示:

    credentials = client.credentials_from_clientsecrets_and_code(
        CLIENT_SECRET_FILE,
        ['https://www.googleapis.com/auth/calendar.readonly'],
        auth_code,
        redirect_uri=""
    )
© www.soinside.com 2019 - 2024. All rights reserved.