Wrong nbf time when decoding JWT token in nestjs

76 views Asked by At

in my app.module I Register JWT as :

    JwtModule.register({
      secret: `${process.env.JWT_SECRET}`,
      signOptions: {
      expiresIn: "24h" ,
      notBefore:  Math.floor(new Date().getTime() / 1000) ,
      
    },

but when i decode the token I get these timestamps:

 iat: 1699944419,
 nbf: 3399888838,
 exp: 1700030819

nbf times shows a wrong datetime ( Sunday, September 26, 2077 5:03:58 PM )

1

There are 1 answers

0
Jay McDoniel On BEST ANSWER

jsonwebtoken's notBefore field seems to be time relative to the current time. If you pass a numeric value (which you do), that value will be treated as seconds, which is why you're doubling the time at the moment. You can see here that the nbf gets assigned the current timestamp plus the notBefore option, which leads to the doubled time. Give a time relative to the current for what you want the notBefore to be, instead of an absolute time.