Suc*_*uch 5 ruby-on-rails devise jwt
有没有办法刷新Rails 中devise-jwt提供的 JWT 令牌?或者是强制用户重新进行身份验证的最佳实践?
我最终做的是这样的:
在我的白名单中:
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
Run Code Online (Sandbox Code Playgroud)
在那里我会检查过期时间。例如,如果您的令牌持续 60 秒,并且您希望刷新至少 30 秒的令牌。你可以写:
if token.present? && token.exp < (Time.now+30.seconds)
token.update_column(:exp, Time.now+60.seconds)
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4070 次 |
| 最近记录: |