首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在IOS中实现Oauth2.0流

在IOS中实现Oauth2.0流
EN

Stack Overflow用户
提问于 2013-11-01 21:33:45
回答 1查看 153关注 0票数 2

我正在编写一个IOS并实现oauth2.0流程。

我在IOS SDK中有以下oauth2.0流,允许开发人员控制我的用户帐户:

  • 使用mysite/oauth2.0作为url打开webview
  • 用户登录/注册。
  • Mysite.com重定向到具有查询字符串中的代码或错误的特殊url。
  • Webview (通过shouldStartLoadWithRequest函数)识别特殊的url并关闭自身。

然后,它将代码传递给父控制器的委托函数。

代码语言:javascript
复制
[self.delegate processOauth2.0Code: code]

如果出现错误(可能是用户拒绝了oauth2.0),它将创建NSError对象并将NSError对象发送给单独的委托函数)

代码语言:javascript
复制
[self.delegate processOAuth2.0Error: error]
  • 父控制器函数然后将代码发送到web服务器。
  • Web服务器使用带有应用程序密钥的代码对我的站点进行api调用以检索访问令牌。

这样的Oauth2.0流是如何在移动应用程序中设计的吗?

你们对改进设计有什么建议吗?

对于代码和错误有两个委托函数是正常的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-02 03:43:01

上面的过程看上去是正确的,但是我并不熟悉所有的细节。这样做的原因是,有许多OAuth2库允许您将此过程本质上视为一个黑匣子。

流行的OAuth提供者:

  • 很多人使用AFNetworking和它的OAUth扩展。
  • 我使用GTMOAuth2,它可以通过CocaoPods安装。它包含用于身份验证(即获取、验证或刷新令牌)以及发送网络请求的方法。我只将它用于身份验证部分,使用另一个HTTP堆栈,其中我只添加OAuth令牌作为请求头。

使用:GTMOAuth2:

  • 设置起来可能有点复杂。比适合这样回答的代码要多一点。基本上,您可以向窗口添加一个GTMOAuth2ViewControllerTouch,并使用它来收集凭据。
  • 测试它的最好方法是运行示例,然后修改它们以与您自己的后端对话。运行后,将代码移植到应用程序中。

我建议您使用OAuth库,而不是自己实现它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19735743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档