在Rails上实现JWT

时间:2018-11-18 21:13:41

标签: ruby-on-rails ruby jwt ruby-on-rails-5 token

在尝试实施devise jwt时遇到问题。 这是我设计的用户模型:

class User < ApplicationRecord  
devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :validatable,
         :database_authenticatable,
         :jwt_authenticatable,
         jwt_revocation_strategy: JwtBlacklist 
end

这是我的blacklist.rb模型。

class JwtBlacklist < ApplicationRecord
include Devise::JWT::RevocationStrategies::Blacklist

self.table_name = 'jwt_blacklist'
end

这就是我所得到的。

Caused by:
NameError: uninitialized constant User::JwtBlacklist

希望您可以帮到我,我是Rails的新手。 非常感谢。

2 个答案:

答案 0 :(得分:6)

请注意,根据include Devise::JWT::RevocationStrategies::Blacklist文档,include Devise::JWT::RevocationStrategies::Denylist已替换为devise-jwt

答案 1 :(得分:1)

如果要调用模型JwtBlacklist,则文件名 必须为jwt_blacklist.rb,以便自动加载程序可以找到它。现在,该名称暗示该模型称为Blacklist