【问题标题】:How to refresh a JWT token with devise-jwt如何使用 devise-jwt 刷新 JWT 令牌
【发布时间】:2018-12-13 12:10:39
【问题描述】:

有没有办法在 Rails 中刷新 devise-jwt 提供的 JWT 令牌?还是强制用户重新进行身份验证的最佳做法?

【问题讨论】:

标签: ruby-on-rails devise jwt


【解决方案1】:

我最终做的是:

在我的许可名单中:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    • 2016-06-25
    • 2016-08-25
    • 2020-12-26
    • 2021-04-06
    • 2017-10-11
    相关资源
    最近更新 更多