4

我正在为 Rails 中的 iOS 应用程序做后端。用户需要能够使用特定于应用程序的用户名/密码或通过 Twitter 登录应用程序,但我不太确定如何设置通过 Twitter 登录。

如果我使用 OmniAuth,那么流程似乎是这样的:

  1. iOS 应用程序将 Safari 中的用户定向到 OmniAuth 为我设置的 /auth/twitter 页面
  2. /auth/twitter 页面将用户发送到 Twitter 以进行 OAuth 身份验证
  3. Twitter 将用户返回到 /auth/twitter/callback,OmniAuth 给了我一个包含信息的 auth 哈希
  4. ???
  5. iOS 应用程序现在拥有在调用我的 API 时识别发出请求的用户所需的凭据
  6. 身份验证完成,应用程序正常使用

这是第 4 步,将凭据返回到 iOS 应用程序,我不知道如何设置。iOS 应用程序调用的所有 API 都是无状态的;如果他们需要经过身份验证的用户,则用户凭据包含在 API 调用中。我对编写 iOS 应用程序知之甚少,对应用程序如何与 Safari 交互几乎一无所知。

将用户凭据返回到应用程序的安全方法是什么?一个不能被窥探的?如果我让回调页面将信息放入 cookie 或会话中,应用程序是否可以访问这些信息,但观看流量的任何人都不能访问?

或者,如果应用程序在对 /auth/twitter 的初始调用中附加了一些标识符,那么 Twitter 和 OmniAuth 是否会保留该标识符,以便将其包含在 /auth/twitter/callback 中,以便应用程序可以询问我结束与该标识符关联的身份验证的凭据?

4

1 回答 1

0

或者,如果应用程序在对 /auth/twitter 的初始调用中附加了一些标识符,那么 Twitter 和 OmniAuth 是否会保留该标识符,以便将其包含在 /auth/twitter/callback 中,以便应用程序可以询问我结束与该标识符关联的身份验证的凭据?

你试过了吗?因为这通常是您的第 4 步。您保留有关用户的令牌或其他内容,因此当您收到回调时,您可以再次查找该用户。没有会话或 cookie,只有普通的 db。

于 2013-04-27T12:52:19.827 回答