【问题标题】:Reverse Auth and Twitter SSO in iOS5iOS5 中的反向身份验证和 Twitter SSO
【发布时间】:2012-04-23 01:03:02
【问题描述】:

我正在尝试在我的 iOS5 应用程序中实现 Twitter SSO,并看到 Twitter 有一个名为 Reverse Auth 的东西。如果这是正确的方法,有人可以阐明一下。 Reverse Auth 基本上是从 iOS5 应用程序获取访问令牌并将其传递给应用程序服务器吗?

【问题讨论】:

    标签: ios5 twitter oauth single-sign-on


    【解决方案1】:

    如果您想允许服务器进行 API 调用,您只需要使用 Reverse Auth。如果您只对让 iOS 应用直接发布到 Twitter 感兴趣,那么您不需要 Reverse Auth。

    对于反向验证,请参阅:

    https://dev.twitter.com/docs/ios/using-reverse-auth

    https://github.com/seancook/TWiOS5ReverseAuthExample

    请务必先向 Twitter 请求反向身份验证权限,否则示例代码将不起作用。

    【讨论】:

    • 嗯,为什么服务器需要单独的访问令牌?一旦客户端收到身份验证令牌,它不能将其传递给服务器吗?
    • 已经有一段时间了,但是iirc他们希望区分客户端和服务器,因为客户端API调用总是由用户直接发起,而服务器API调用可以自主进行(因此,用户必须显式授予客户端应用执行反向身份验证的权限)。单独的令牌允许用户撤销服务器的授权,而不必撤销客户端应用程序的授权。
    【解决方案2】:

    要在 Twitter 上获取您的访问令牌,当您想在应用程序中实现推送通知时,您的请求必须是授权请求或签名请求,例如 Apple 的签名证书。

    在 Facebook 端,这些过程是隐式进行的,但在 Twiteer 中,您应该首先授权您的请求以获取用户访问令牌。

    所以反向验证的主要思想是这些.. 您首先使用消费者密钥(即应用程序密钥)和消费者密钥等数据发出您的第一个请求。(https://api.twitter.com/oauth/request_token

    然后您会收到一个密钥,您在第二次请求中使用它来获取访问令牌.. (https://api.twitter.com/oauth/access_token)

    Twitter 正在使用一种叫做 Reverse Auth 的东西来回答这 4 个问题: 1. 哪个应用程序发出请求? 2. 请求代表哪个用户发布? 3. 用户是否已授予应用程序代用户发帖的权限? 4.请求在传输过程中是否被第三方篡改?

    为了回答这些问题,他们在您提出的要求中添加了 7 件事

    • oauth_consumer_key
    • oauth_nonce
    • oauth_signature
    • oauth_signature_method
    • oauth_timestamp
    • oauth_token
    • oauth_version

    许多人试图自己制作这些,但您需要很长时间才能自己制作并根据您的要求制作。

    所以在 gitHub 上关注这个 repo https://github.com/seancook/TWReverseAuthExample

    还有关于反向验证的 Twitter 文档 https://dev.twitter.com/docs/ios/using-reverse-auth

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-31
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 2012-10-24
      • 2014-02-23
      • 1970-01-01
      相关资源
      最近更新 更多