如何在FeathersJS中更改JWT到期时间?

时间:2018-08-27 12:44:16

标签: jwt hook feathersjs

我正在研究如何在FeathersJS中设置JWT的子声明的this question,但是当我打印hook.params时,其中没有jwt。 仅authenticatedqueryrouteproviderheadersuserpayload

所以我仍然要提出一个问题:如何更改Feathers中JWT令牌的到期时间?

2 个答案:

答案 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
    }
  }
}