加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 使用Devise,Doorkeeper和OAuth2令牌的API和应

发布时间:2020-12-16 19:38:50 所属栏目:百科 来源:网络整理
导读:我有桌面应用程序和移动应用程序.我想为这两个“设备”使用相同的rails应用程序.换句话说,我希望移动应用程序在桌面应用程序上请求内容. 我使用Devise进行身份验证(电子邮件密码). 我在桌面应用程序上实现了Doorkeeper,以便为我的移动应用程序生成一个Oauth2
我有桌面应用程序和移动应用程序.我想为这两个“设备”使用相同的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的承载令牌相似的功能.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读