【发布时间】:2014-11-15 16:59:11
【问题描述】:
我正在构建一个带有 Rails 后端的 iPhone 客户端。客户端通过 Oauth2 API 与服务器通信。我已经使用 oauth2 和 doorkeeper gem 进行了设置。
每个 API 请求都必须使用令牌发送。我目前支持两种令牌“类型”:
- 客户端:使用客户端凭据授予类型。这适用于非用户特定的请求,例如访问应用范围的资产、密钥等。
- 用户:使用密码凭据授予类型。要获取此令牌,客户端必须通过传递有效的用户名/密码组合来请求它。所有用户请求都使用此令牌。
这一切正常,但我现在遇到了一个问题,因为我允许用户也使用 Facebook 登录应用程序。
在用户登录 FB 后,我的客户端通过将 Facebook UID 传递给我的服务器(使用客户端令牌)来响应。然后我在我的服务器上进行一些检查,以将此 UID 与我数据库中的现有用户相匹配。
问题是:我想使用用户令牌响应此请求。需要此令牌,因为用户现在将登录到应用程序,并且任何后续请求都将需要此令牌。但是,目前我觉得我这样做的唯一方法是:
回复用户名和密码。然后让客户端按照密码凭证流程请求用户令牌。我不喜欢这样,因为我要传递密码,而且需要多次访问。
我觉得我可能缺少一些基本的东西。我还有其他方法可以处理这个流程吗?
【问题讨论】:
标签: ruby-on-rails authentication oauth-2.0