【问题标题】:How JWT token expiresIn works in feathers?JWT 令牌 expiresIn 如何在羽毛中工作?
【发布时间】:2017-06-22 20:06:48
【问题描述】:

当我解码我在有效负载中看到的 JWT 令牌时

{
  "exp": 1494105589
}

它的价值是什么意思?文档说默认的 JWT expiresIn 值是“1d”,但它似乎不是在创建令牌后 1 天,甚至不是 1 天(以毫秒为单位)(1000*60*60*24)。最糟糕的是:当我在我的配置中设置 "expiresIn": "90d" 时,这个值没有太大变化。有人能解释一下吗?

【问题讨论】:

    标签: jwt feathersjs


    【解决方案1】:

    这是一个 unix 时间戳,计算自 1970 年 1 月 1 日 00:00 UTC 以来的秒数。 有几个网站可以帮助您转换价值,例如。这个:http://www.unixtimestamp.com/index.php 对于您的时间戳,它显示 05/06/2017 @ 9:19pm (UTC),因此您的令牌有效期为 5 个月。

    https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4 说明 数字日期 用于 exp 声明(也用于 nbf(不是之前)和 iat(发布于)声明)

    https://www.rfc-editor.org/rfc/rfc7519#section-2 定义数字日期

    一个 JSON 数值,表示从 1970-01-01T00:00:00Z UTC 到指定 UTC 日期/时间的秒数,忽略闰秒。

    除了你说的

    最糟糕的是:当我设置“expiresIn”时,这个值没有太大变化: “90d”在我的配置中。

    当你拿到令牌时,它是不是这样的结构:

    {"access_token": "eyJhbGciOiJ...", "token_type": "bearer", "expires_in": 86399 }
    

    如果是,expires_in 是否显示正确的值?

    【讨论】:

    • 好的。我的问题是我不知道数字日期是 而不是毫秒数。现在一切都清楚了。
    猜你喜欢
    • 2022-06-27
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    • 2021-03-04
    • 2012-11-11
    • 1970-01-01
    • 2015-08-29
    相关资源
    最近更新 更多