我正在研究如何在FeathersJS中设置JWT的子声明的this question,但是当我打印hook.params
时,其中没有jwt
。
仅authenticated
,query
,route
,provider
,headers
,user
和payload
。
所以我仍然要提出一个问题:如何更改Feathers中JWT令牌的到期时间?
答案 0 :(得分:4)
找到了:)
我看了一下文章中链接的代码(链接已更改,但是在浏览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')
]
}
});
答案 1 :(得分:1)
对于后代,
您可以在config / default.json中轻松更改它:
{
// ...
"authentication": {
"jwtOptions": {
"expiresIn": "2 days" // Or "10h" or just a number which is interpreted as seconds
}
}
}