NestJS是否有原生方法可在JWT签名完成后直接解码获取exp字段?
NestJS 签名JWT后立刻解码获取exp字段的最简方案
你已经注入了JwtService的前提下,直接调用其自带的decode()方法即可,无需额外安装第三方依赖、也不需要手动做JSON解析,是当前场景下的最简实现。
实现代码
// 签名生成JWT(原有逻辑不变) const signedJwtAccessToken: string = this.jwtService.sign(jwtPayload); // 直接调用JwtService自带的decode方法,返回结果可直接断言为你的JwtPayload类型 const decodedJwtPayload = this.jwtService.decode(signedJwtAccessToken) as JwtPayload; // 直接读取exp属性即可 const expires = decodedJwtPayload.exp;
说明
- 该
decode方法是@nestjs/jwt内置的API,底层直接封装了jsonwebtoken库的同名方法,仅做解码不做签名校验,非常适合你自己生成JWT后立刻读取内置字段的场景,性能开销极低。 - 不需要手动对解码结果做JSON.parse,方法返回值已经是解析完成的JS对象,直接取值即可。
内容的提问来源于stack exchange,提问作者Felix
相关产品推荐
相关产品推荐

