我正在使用网络客户端和iPhone客户端构建应用程序。
在Web客户端上,我通过Facebook使用Omniauth对用户进行身份验证,然后用户可以将应用上的操作发布到Facebook。这很好。
我在从iPhone应用程序实现Auth流程时遇到了一些问题。
我已将rails应用程序中的Doorkeeper设置为OAuth提供程序。虽然我不确定如何实现身份验证流程。
我想到了这个: 用户可以在iPhone中登录Facebook并获取令牌。然后我们的想法是将令牌以及Facebook uid发送到rails应用程序,存储它,并使用Omniauth对用户进行身份验证。一旦用户通过身份验证,就会生成一个带有Doorkeeper的令牌并将其发送回iPhone应用程序。
如果这是用户第一次针对rails应用进行身份验证,则会创建一个新用户。
然后,用户可以针对JSON-api执行操作,rails应用程序将负责Facebook集成,因为Facebook令牌存储在用户记录中。
该应用程序还将跨越多个域,因此我需要注册多个Doorkeeper应用程序以提供不同的回调uri。
这看起来像是一个可行的解决方案吗? 它安全吗? 是否有其他流量/方法?
感谢。
答案 0 :(得分:8)
我采用的解决方案总结如下:
我在这里有一个图表和更多细节:http://www.eggie5.com/57-ios-rails-oauth-flow