Pie*_*ois 13 api ruby-on-rails oauth devise ruby-on-rails-3
我有桌面应用程序和移动应用程序.我想为两个"设备"使用相同的rails应用程序.换句话说,我希望移动应用程序在桌面应用程序上请求内容.
我使用Devise进行身份验证(电子邮件+密码).我在桌面应用程序上实现了Doorkeeper,以便为我的移动应用程序生成Oauth2令牌.
这是我的问题:
我在桌面应用程序控制器中设置了before_filters以保护它们.
事实上,现在,门卫应该使用doorkeeper_for :all代码检查控制器中的移动令牌.但要做到这一点,我必须无法设计保护before_filter :authenticate_user!......
我是否应该在设计中保存oauth令牌?
我误解了移动应用程序应该如何使用devise和OAuth2 protocole进行身份验证?
谢谢
Gre*_*sen 10
这已经过时了,但还没有答案.
基本上Devise和Doorkeeper正在做同样的事情,Devise使用会话进行身份验证(如果你已启用,则使用令牌身份验证),而Doorkeeper使用每个请求中发送的OAuth令牌进行身份验证.
你可能想要做的是将你的应用程序分成两个访问点,使用Devise进行常规桌面访问,使用一个使用Doorkeeper的API.仅为常规桌面控制器启用设计路由,并仅为api控制器启用门卫路由.
在API Application Controller中,您可以覆盖current_user User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token.这将与Devise认证的方式相匹配.
或者,如果您的API不必使用OAuth,则可以使用Devise的token_authenticable配置,该配置提供与OAuth的承载令牌类似的功能.