有没有一种方法可以刷新Rails中devise-jwt提供的JWT令牌?还是强迫用户重新认证的最佳实践?
答案 0 :(得分:0)
我最终要做的是这样
在我的允许清单中:
def self.jwt_revoked?(payload, user)
# Hook in here to refresh token
token = user.allowlisted_jwts.where(payload.slice('jti', 'aud')).first
if token.present? && (SOME LOGIC ABOUT YOUR EXPIRATION HERE)
token.update_column(:exp, Time.now + SOME TIME)
end
token.blank?
end
我将检查到期时间。例如,如果令牌持续60秒,而您想刷新至少30秒,则要刷新。您可以这样写:
if token.present? && token.exp < (Time.now+30.seconds)
token.update_column(:exp, Time.now+60.seconds)
end