如何更改FeathersJS中的JWT过期时间?

如何更改FeathersJS中的JWT过期时间?,jwt,hook,feathersjs,Jwt,Hook,Feathersjs,我正在研究如何在FeathersJS中设置JWT的子声明,但是当我打印hook.params时,其中没有JWT。 仅认证,查询,路由,提供商,标题,用户和有效载荷 所以我仍然有一个问题:如何在Feathers中更改JWT令牌的过期时间?找到它:) 我查看了帖子中链接的代码(链接已更改,但在浏览git repo时很容易找到),发现在params中,您只需创建自己的jwt对象,这些选项将在创建jwt时合并 因此,如果其他人偶然发现了这一点,以下是我的代码: app.service('authenti

我正在研究如何在FeathersJS中设置JWT的子声明,但是当我打印
hook.params
时,其中没有
JWT
。 仅
认证
查询
路由
提供商
标题
用户
有效载荷

所以我仍然有一个问题:如何在Feathers中更改JWT令牌的过期时间?

找到它:) 我查看了帖子中链接的代码(链接已更改,但在浏览git repo时很容易找到),发现在
params
中,您只需创建自己的
jwt
对象,这些选项将在创建jwt时合并

因此,如果其他人偶然发现了这一点,以下是我的代码:

app.service('authentication').hooks({
  before: {
    create: [
      authentication.hooks.authenticate(config.strategies),

      context => {
        context.params.jwt = { expiresIn: 10 }; // 10 seconds
      }
    ],
    remove: [
      authentication.hooks.authenticate('jwt')
    ]
  }
});
为了子孙后代

您可以在config/default.json中轻松更改:

{
  // ...
  "authentication": {
    "jwtOptions": {
        "expiresIn": "2 days" // Or "10h" or just a number which is interpreted as seconds
    }
  }
}

谢谢,这是一个更简单,但通用的方法。例如,当您想限制某个用户的会话时间时,可以使用我上面发布的代码。请注意,过期时间不会自动强制执行。。。在auth v2中。即使您的配置有1000万个JWT过期,一个假的一年JWT也会通过默认验证。如果有人看到你发行了长达一年的JWT。。。你在自找麻烦。使用所使用的算法验证过期。。。长过期应该使用一个好的算法,如