Nom*_*man 10 ruby rack ruby-on-rails devise jwt
我希望这不算是一个固执己见的问题.我只需指向正确的方向.
我正在修改Devise宝石纯粹用JSON.我有没有问题与registration,confirmation,re-confirmation,locking到目前为止.
但是,在使用登录时,我深入挖掘并了解默认Devise登录策略使用Warden与会话和Rack身份验证相关的操作.
我理解JWT其中包含所有信息,不需要会话.
因此,如果我删除Devise所有内容的默认策略并简单地返回JWT成功和错误错误,那么这是正确的方法吗?
我错过了什么吗?
Wai*_*... 10
为了使用JWT设计,我建议不要使用其他人可以审核和测试的工具.
出于这个原因,我开发了devise-jwt.它执行零猴子修补并利用warden,这是下面的设计认证库.您还可以在我写的这篇文章中阅读更多相关内容:机架和Rails的安全JWT身份验证实现
希望能帮助到你
我不会使用,devise_token_auth因为它似乎太麻烦了......你在db:/中存储令牌.如果JWT可用,我们为什么要这样做?
我宁愿为Warden/Devise夫妇添加一个新策略,让他们按照自己的意愿行事.
这是一个例子:https://medium.com/@goncalvesjoao/rails-devise-jwt-and-the-forgotten-warden-67cfcf8a0b73.有一点需要注意:JWTWrapper并不属于app/helpers/.JWTWrapper.encode({ user_id: current_user.id })一旦您的用户使用他们的电子邮件/密码成功登录,您需要注入一个电话.也许在Devise SessionsController中?
def create
self.resource = warden.authenticate!(auth_options)
sign_in(resource_name, resource)
yield resource if block_given?
render json: JWTWrapper.encode({user_id:current_user.id})
end
Run Code Online (Sandbox Code Playgroud)
您可能只想对xhr或json(格式)请求执行此操作
您可能不应该破解您的 Devise gem 源。我建议只使用Devise Token Auth gem 来处理令牌。
https://github.com/lynndylanhurley/devise_token_auth
它将生成并验证有效的RFC 6750 Bearer Tokens。
根据他们的自述文件。
| 归档时间: |
|
| 查看次数: |
7100 次 |
| 最近记录: |