Rails设计OmniAuth Facebook从iOS登录

And*_*w K 21 authentication ruby-on-rails devise ios omniauth

我一直在寻找这个问题的可靠解决方案,并遇到了这个问题,这与我的困境相匹配,但并不完全如此.

目前我的iPhone应用程序通过Basic Auth使用我的Rails API进行身份验证.它只是你简单的,普通的设计auth包.然后我按照说明设置omniauth-facebook for devise并在浏览器端工作.

我无法弄清楚如何做的部分是如何将在iPhone端收到的令牌(通过Facebook iOS SDK)发送到服务器.我希望服务器检查用户表以查看该facebook用户是否已注册,如果他没有,则为他创建一个帐户.然后,我在想服务器会生成一个随机密码并将其发送回客户端设备,以便我可以保持相同的基本身份验证策略.这是实现Web应用程序和iPhone应用程序单点登录的正确方法吗?如何修改服务器端软件包以支持通过手机发送的令牌进行身份验证?

小智 2

您是否考虑过让您的应用程序成为 Oauth2 提供商?

我自己还没有这样做过,但经过一番挖掘后,看起来 opro 和doorkeeper 是该问题的两种可能的解决方案。

https://github.com/opro/opro https://github.com/doorkeeper-gem/doorkeeper

看起来 opro 与 devise 配合得很好:

#inside initializers/opro.rb
Opro.setup do |config|
  config.auth_strategy = :devise
end
Run Code Online (Sandbox Code Playgroud)

绝对有兴趣看看这对你来说结果如何