Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
接收跨客户端Google+授权码,以便在iOS上不使用库进行脱机访问_Ios_Google Plus - Fatal编程技术网

接收跨客户端Google+授权码,以便在iOS上不使用库进行脱机访问

接收跨客户端Google+授权码,以便在iOS上不使用库进行脱机访问,ios,google-plus,Ios,Google Plus,这很有趣,但我找不到关于在没有iOS Google+库的情况下使用HTTP请求接收Google+身份验证代码进行离线访问的描述 虽然它的集成示例非常简单,但我不想给我的iOS应用程序增加20mb的额外重量 我尝试了这里描述的方法 但在服务器clientId的情况下,我会收到关于重定向uri不正确的消息 有人能给我一些建议吗?有两种方法可能对你有用,也可能对你无效 使用内部存储的客户端机密安装的应用程序流 Web视图中的Web流。 已安装的应用程序流 您可能需要使用具有重定向URI的,该URI具

这很有趣,但我找不到关于在没有iOS Google+库的情况下使用HTTP请求接收Google+身份验证代码进行离线访问的描述

虽然它的集成示例非常简单,但我不想给我的iOS应用程序增加20mb的额外重量

我尝试了这里描述的方法

但在服务器clientId的情况下,我会收到关于重定向uri不正确的消息


有人能给我一些建议吗?

有两种方法可能对你有用,也可能对你无效

使用内部存储的客户端机密安装的应用程序流 Web视图中的Web流。 已安装的应用程序流 您可能需要使用具有重定向URI的,该URI具有类似于urn:ietf:wg:oauth:2.0:oob的内容,使您能够重定向回浏览器,从那里您可以获得代码以交换令牌

在您的情况下,我猜您没有创建正确的客户端类型安装的应用程序,这会阻止*:oob重定向

以这种方式处理登录不太安全-如果用户可以从你的应用程序中提取客户端机密,他们可能会做一些坏事,比如授权恶意3P应用程序访问你的应用程序数据

网络签名流 另一种选择是在WebView中使用web登录流,苹果可能会拒绝您的应用程序,这也是不安全的

您要做的是将登录解决方案托管在web服务器上,使用启动登录,请求脱机访问,然后将生成的代码交换为访问令牌和刷新令牌

然后,您将在设备上存储刷新令牌/访问令牌,并在需要访问用户数据时将其交换为访问令牌,或者在服务器端交换刷新令牌,并在需要访问时将承载令牌传递回iOS应用程序。这同样是不好的,因为它会将其他应用暴露给用户授权凭据,并可能允许恶意3P访问用户数据


这两种方法我都不推荐。除了应用程序大小影响之外,您是否还有其他原因不能使用库?我将看看是否有一种好方法可以避免框架对文件大小的影响。

感谢您的回复。虽然这两个建议都不适合我。我只是不明白为什么我应该使用一个包含很多不同API的巨大库,而我不打算调用这些API,而不是简单的HTTP请求。我知道我的服务器clientId在某种程度上与库中的urn:ietf:wg:oauth:2.0:oob重定向相匹配,因为我能够通过在iOS和服务器上使用库身份验证代码来检索访问令牌。如果库可以做到这一点,那么为什么我的应用程序不能做到?