ROR: devise-jwt : 如何调用 jwt_revoked?功能?

问题描述

我正在为我的 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?功能??

谢谢

解决方法

jwt_revoked?Devise::JWT::RevocationStrategies::Denylist 模块的一部分。所以你需要调用 JwtBlacklist 模型

JwtBlacklist.jwt_revoked?(decoded,user)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...