Ios 尝试使用Google API进行身份验证时重定向\u uri\u不匹配

Ios 尝试使用Google API进行身份验证时重定向\u uri\u不匹配,ios,google-api,Ios,Google Api,我有一个棘手的问题。我需要使用iOS应用程序启动Google身份验证,并将Google API返回的code值传递给我创建的服务器端点。如果我是从JavaScript应用程序启动请求,那么这种方法非常有效。谷歌文档 但是,如果我使用下面的代码初始化来自iOS应用程序的请求,它会返回并说我有一个URI不匹配,因为我创建的oAuth ID是一个Web应用程序类型。如果我使用Other,我将得到另一个错误,即获取OAuth2访问令牌时出错,消息:“无效\u授权:无效代码”。 话虽如此,以下是我如何从i

我有一个棘手的问题。我需要使用iOS应用程序启动Google身份验证,并将Google API返回的
code
值传递给我创建的服务器端点。如果我是从
JavaScript
应用程序启动请求,那么这种方法非常有效。谷歌文档

但是,如果我使用下面的代码初始化来自iOS应用程序的请求,它会返回并说我有一个URI不匹配,因为我创建的oAuth ID是一个
Web应用程序
类型。如果我使用
Other
,我将得到另一个错误,即
获取OAuth2访问令牌时出错,消息:“无效\u授权:无效代码”。

话虽如此,以下是我如何从iOS应用程序启动身份验证

NSString *urlString = @"https://accounts.google.com/o/oauth2/token";
NSURL *tokenURL = [NSURL URLWithString:urlString];

// We'll make up an arbitrary redirectURI.  The controller will watch for
// the server to redirect the web view to this URI, but this URI will not be
// loaded, so it need not be for any actual web page.
NSString *redirectURI = @"urn:ietf:wg:oauth:2.0:oob";
GTMOAuth2Authentication *auth = [GTMOAuth2Authentication authenticationWithServiceProvider:@"Google"
                                                                                  tokenURL:tokenURL
                                                                               redirectURI:redirectURI
                                                                                  clientID:kClientID
                                                                              clientSecret:kClientSecret];

您是否看到任何明显的问题?

重定向url必须注册到谷歌云应用程序中。它不能使用通配符


我会说:确保它得到了正确的重定向uri。uri的精确性至关重要。

重定向url必须注册到谷歌云应用程序中。它不能使用通配符


我会说:确保它得到了正确的重定向uri。uri的精确性至关重要。

解决方案最终使用谷歌登录作为用户身份验证的一种方式:

解决方案最终使用谷歌登录作为用户身份验证的一种方式:

阿尔贝托,谢谢,但是
重定向uri
这里是iOS应用程序的任意值。至少文件上是这么说的。如果您不这么认为,那么重定向uri应该是什么?它是我的服务器API的完全限定路径吗?重定向URI应该是服务器中文件夹或文件的完全限定部分。Alberto,谢谢,但这里的重定向URI是iOS应用程序的任意值。至少文件上是这么说的。如果您不这么认为,那么重定向uri应该是什么?它是我的服务器API的完全限定路径吗?重定向URI应该是服务器中文件夹或文件的完全限定部分。