【发布时间】:2017-09-28 19:36:53
【问题描述】:
我正在尝试验证一个将在一周后过期的链接。我有一个 activator_token 存储在数据库中,它将用于生成这种格式的链接:http://www.example.com/activator_token。 (而不是由 Devise 或 Authlogic 生成的激活令牌。)
有没有办法让这个激活令牌过期(一周左右)而不与 updated_at 或其他日期进行比较。类似于编码令牌的东西,一周后解码时将返回 nil。 Ruby 中的任何现有模块都可以做到这一点吗?我不想将生成的日期存储在数据库或 Redis 等外部存储中,并将其与 Time.now 进行比较。我希望它非常简单,并且想知道这样的东西是否已经存在,然后再编写逻辑。
【问题讨论】:
-
为什么不想把生成的日期存入数据库呢?我要做的是使用github.com/javan/whenever 运行定期 rake 任务,通过检查对象上的日期来从数据库中删除过期的东西。我会随时使用,因为它与 capistrano 配合得很好
-
不是不想存。想知道是否有任何现有的机制可以处理到期,比如如果我在到期后尝试解码编码的令牌,它将返回 nil。如果没有类似的东西,我将不得不像你说的那样写一些逻辑。
-
现在我明白了!长话短说,你想使用github.com/jwt/ruby-jwt
-
太棒了!这就是我要找的!您可以将其添加为答案,达米亚诺! :)
-
@DamianoStoffie ,有没有办法减少这个 JSON Web 令牌的长度?我需要在 URL 中使用它。
标签: ruby ruby-on-rails-4 token