gpt4 book ai didi

android - Google+ 登录 redirect_uri_mismatch 错误

转载 作者:搜寻专家 更新时间:2023-11-01 08:54:07 28 4
gpt4 key购买 nike

我正在尝试在我的系统中实现一次性代码登录流程。应用包含两部分:1)向Google+请求一次性授权码的Android应用2)Rails 服务器在请求 header 中从 android 应用程序接收一次性代码,并尝试从 Google+ 交换代码以获取 access_tokenid_token

问题是,如果我在浏览器中使用 JavaScript 登录按钮获取一次性代码,一切正常,但当 Android 应用程序获取一次性代码,然后将其发送到我的服务器时,一切都无法正常工作。

我总是得到

"error" : "redirect_uri_mismatch"

我的服务器设置如下:

{ "web":
{ "client_id": "MY_REGISTERED_WEB_APP_CLIENT_ID",
"client_secret": "MY_CLIENT_SECRET",
"redirect_uris": ["postmessage"],
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token"
}
}

现在,我如何从 Android 应用请求一次性代码:我使用与我的服务器上相同的 MY_REGISTERED_WEB_APP_CLIENT_ID 来请求一次性代码。我不知道,也许我必须在 Android 上使用与我的 Android 应用程序相对应的另一个客户端 ID?但是所有找到的文档和文章都指向已注册网络应用 client_id

或者也许我的 rails 服务器不应该配置为网络,而是配置为在 Google 控制台应用程序中注册的安装类型?

现在关于 redirect_uris。我尝试在 Google 控制台中设置多个 redirect_uris:

  • 空字段
  • http://localhost:5000
  • https://localhost:5000
  • http://my.deployment.url/auth2callback

Google 控制台中的 Web 来源设置为 - http://my.deployment.url - http://localhost:5000

无法弄清楚我做错了什么。其实我不明白为什么我需要设置这个 redirect_uris 值,因为我不想从谷歌那里得到回调,我只想得到 access_token 并使用它用于访问 Google+。

最佳答案

发生这种情况是因为您的 Android 应用程序用于创建初始登录流程的 redirect_uri 与服务器在尝试为 access_token 交换代码时使用的 redirect_uri 不同。用户返回的 redirect_uri 和 token 交换中使用的 redirect_uri 必须匹配。

关于android - Google+ 登录 redirect_uri_mismatch 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20427923/

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