ruby-on-rails – 使用Devise,Doorkeeper和OAuth2令牌的API和应用程序身份验证

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 使用Devise,Doorkeeper和OAuth2令牌的API和应用程序身份验证前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有桌面应用程序和移动应用程序.我想为这两个“设备”使用相同的rails应用程序.换句话说,我希望移动应用程序在桌面应用程序上请求内容.

我使用Devise进行身份验证(电子邮件密码).
我在桌面应用程序上实现了Doorkeeper,以便为我的移动应用程序生成一个Oauth2令牌.

这是我的问题:

我的桌面应用程序控制器中有before_filters集,以确保它们的安全.

>我不知道移动应用程序应该如何与Devise共享OAuth2令牌,以便进行身份验证并访问我的受保护的控制器?

事实上,现在,Doorkeeper应该使用doorkeeper_for:所有代码检查我的控制器中的移动令牌.但是要做到这一点我不得不设法保护before_filter:authenticate_user!

我应该在设计中保存oauth令牌吗?

我误解了移动应用程序应该如何使用设计和OAuth2原型认证?

谢谢

解决方法

这是老的,但还没有答案.

Essential Devise和Doorkeeper正在做同样的事情,Devise使用会话进行身份验证(或者如果您启用了会话身份验证),而Doorkeeper会在每个请求中发送的OAuth令牌进行身份验证.

您可能想要做的是将应用程序分为两个访问点,使用Devise进行常规桌面访问,并使用Doorkeeper进行API访问.启用仅限常规桌面控制器的设计路线,并启用只有api控制器的门卫路由.

在您的API应用程序控制器中,如果doorkeeper_token,则可以将current_user替换为User.find(doorkeeper_token.resource_owner_id).这将符合Devise认证的方式.

或者,如果您的API不必使用OAuth,您可以使用Devise的token_authenticable配置,它提供与OAuth的承载令牌相似的功能.

原文链接:/ruby/271576.html

猜你在找的Ruby相关文章