如何更改FeathersJS中的JWT过期时间?
我正在研究如何在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
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。。。你在自找麻烦。使用所使用的算法验证过期。。。长过期应该使用一个好的算法,如