我使用devise和devise-jwt作为我的ror api。我想让用户知道(通过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?函数??
谢谢
发布于 2021-02-17 23:04:09
jwt_revoked?是Devise::JWT::RevocationStrategies::Denylist模块的一部分。因此您需要调用JwtBlacklist模型
JwtBlacklist.jwt_revoked?(decoded, user)https://stackoverflow.com/questions/66243944
复制相似问题