首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用devise-jwt刷新JWT令牌

如何使用devise-jwt刷新JWT令牌
EN

Stack Overflow用户
提问于 2018-12-13 20:10:40
回答 1查看 2.3K关注 0票数 3

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

EN

回答 1

Stack Overflow用户

发布于 2020-10-26 01:51:01

我最终做的是这样的:

在我的允许列表中:

代码语言:javascript
复制
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秒的令牌。你可以这样写:

代码语言:javascript
复制
if token.present? && token.exp < (Time.now+30.seconds)
  token.update_column(:exp, Time.now+60.seconds)
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53761563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档