【问题标题】:Twitter API Authentication推特 API 身份验证
【发布时间】:2015-07-18 13:48:31
【问题描述】:
我正在尝试学习 iOS 开发。我正在为自己创建一个应用程序(不会发布),它被简化了,从用户那里获取查询输入并使用该查询通过 twitter 进行搜索。
我可以使用UIWebView,但我想改用 Twitter 的 REST API 来熟悉 API 的工作原理。但是,我无法让它工作,因为 twitter 的 API 需要身份验证(我很少理解)。
身份验证是如何工作的,我可以对自己使用的应用进行身份验证吗?
【问题讨论】:
标签:
ios
twitter
twitter-oauth
【解决方案1】:
Twitter 使用 OAUTH2。基本上是这样的:
+--------+ +---------------+
| |--(A)- Authorization Request ->| Resource |
| | | Owner |
| |<-(B)-- Authorization Grant ---| |
| | +---------------+
| |
| | +---------------+
| |--(C)-- Authorization Grant -->| Authorization |
| Client | | Server |
| |<-(D)----- Access Token -------| |
| | +---------------+
| |
| | +---------------+
| |--(E)----- Access Token ------>| Resource |
| | | Server |
| |<-(F)--- Protected Resource ---| |
+--------+ +---------------+
Figure 1: Abstract Protocol Flow
图 1 所示的抽象 OAuth 2.0 流程描述了
四个角色之间的交互,包括以下步骤:
(A) 客户端向资源所有者请求授权。
这
授权请求可以直接向资源所有者提出
(如图所示),或者最好通过授权间接
服务器作为中介。
(B) 客户端收到授权许可,这是一个
代表资源所有者授权的凭证,
使用在此定义的四种授权类型之一表示
规范或使用扩展授权类型。这
授权授予类型取决于所使用的方法
客户端请求授权和支持的类型
授权服务器。
(C) 客户端通过身份验证请求访问令牌
授权服务器并提供授权。
(D) 授权服务器对客户端进行身份验证,并
验证
授权授予,如果有效,则颁发访问令牌。
以上是spec的摘录
请通读this。那里已经有各种语言的示例代码。这是sample code for iphone/ipad