我正在尝试使用我的 iOS 应用和 Rails 网络应用设置 Google OAuth。我在 API 控制台中设置了 2 个单独的客户端(当然具有不同的客户端 ID,但具有相同的前缀)。一个用于 iOS 应用,另一个用于 Web 应用(也client_secret
有访问令牌。
首先,这听起来是不是一件合理的事情,或者不可能像那样在客户之间拆分交易?
我的第一次尝试是只获取身份验证代码并执行交换,但由于missing_code_verifier
invalid_grant
错误而失败,因此我还将code_verifier
AppAuth 用于获取身份验证代码的相同内容传递给我的服务器,并修复了该错误。首先,有必要把这个验证码传给服务器吗?似乎有点奇怪。
unauthorized_client
但现在,它因错误而失败。我的网络应用程序发出这样的请求:
{
"grant_type"=>"authorization_code",
"code"=>"4/XYZ...",
"client_id"=>"WEB_APP_CLIENT_ID_HERE.apps.googleusercontent.com",
"client_secret"=>"WEB_APP_CLIENT_SECRET_HERE",
"redirect_uri"=>"https://www.myapp.com/oauth_callback",
"parse"=>"json",
"code_verifier"=>"CODE_VERIFIER_STRING_HERE"
}
看类似的帖子:
看起来这redirect_uri
可能是一个问题。我在 iOS 上的 AppAuth 配置将重定向 URI 设置为com.googleusercontent.apps.iOS_CLIENT_ID_HERE
,并且Info.plist
URL 方案也设置为。API 控制台中 Web 应用程序的“授权重定向 URI”部分有一堆 Web URL,我也将它们添加com.google...
到其中。这个配置不正确吗?redirect_uri
进行跨客户端身份验证时重要吗?
任何帮助是极大的赞赏!到目前为止,我所有的尝试和错误都没有结果:(