代码
import { JwtService } from '@nestjs/jwt';
...
...
async signAccessToken(userId: string): Promise<string> {
return this._jwtSrv.signAsync(userId, {
expiresIn: ms('5 days'),
});
报错
expiresIn字段(过期时间)设置不了
Error: invalid expiresIn option for string payload
探索
看了下这个expiresIn字段的类型约束,也没发现啥问题
/** expressed in seconds or a string describing a time span [zeit/ms](https://github.com/zeit/ms.js). Eg: 60, "2 days", "10h", "7d" */
expiresIn?: string | number | undefined;
一开始写的是number类型的毫秒数,不行,改成了用ms这个包,还是不行。
看下官方描述:
这里有写怎么填这个值,改成 expiresIn: '5 days', 试试
2022-2-21更
看
jsonwebtoken
库里的测试用例也是这样写的啊,这里的用法应该没问题,是不是的@nest/jwt
的signAsync
做了什么处理,还是其他还有用的不对,用sign()
试试?