问题描述
我正在为我的 ror api 使用 devise 和 devise-jwt。 如果发送的用户不记名令牌被撤销,我想通知用户(通过 api 调用)。
我做了这条路线:
def user_token_revoked
decoder = JWT::Decode.new(
request.headers['Authorization'].split(' ')[1],'GENERATED_TOKEN',nil,nil
)
decoded = decoder.decode_segments
user = User.find_by_id(decoded[0]['sub']) # get id user from decoded token
render json: user.jwt_revoked?(decoded),status: :ok
end
但它给我带来了这个错误:
#
我在我的模型中使用这个 jwt_revocation_strategy: JwtBlacklist:
class JwtBlacklist < ApplicationRecord
include Devise::JWT::RevocationStrategies::Denylist
self.table_name = 'jwt_blacklists'
end
谢谢
解决方法
jwt_revoked?
是 Devise::JWT::RevocationStrategies::Denylist
模块的一部分。所以你需要调用 JwtBlacklist
模型
JwtBlacklist.jwt_revoked?(decoded,user)