在 NESTJS 的装饰器中验证 JWT
Auth JWT in decorator in NESTJS
如何在 nestjs 的装饰器中解码 jwt cookie?我不能在装饰器中使用“private readonly jwtService: JwtService”,我使用 jwt-decode 但它在 jwt 过时时仍然有效
在这种情况下,您可以创建一个 custom decorator。
//user.decorator.ts
import { createParamDecorator, ExecutionContext } from '@nestjs/common';
export const User = createParamDecorator((data: any, ctx: ExecutionContext) => {
const request = ctx.switchToHttp().getRequest();
return request.user;
});
现在我们可以在控制器中使用这个用户装饰器
//user.controller.ts
import { User } from './user.decorator';
@Get()
async getUser(@User() user) {
//console.log(user);
}
您应该必须使用 AuthGuard 来解码 JwtToken
请参考以下来自 NestJs 的文档
https://docs.nestjs.com/security/authentication#implementing-passport-jwt
如何在 nestjs 的装饰器中解码 jwt cookie?我不能在装饰器中使用“private readonly jwtService: JwtService”,我使用 jwt-decode 但它在 jwt 过时时仍然有效
在这种情况下,您可以创建一个 custom decorator。
//user.decorator.ts
import { createParamDecorator, ExecutionContext } from '@nestjs/common';
export const User = createParamDecorator((data: any, ctx: ExecutionContext) => {
const request = ctx.switchToHttp().getRequest();
return request.user;
});
现在我们可以在控制器中使用这个用户装饰器
//user.controller.ts
import { User } from './user.decorator';
@Get()
async getUser(@User() user) {
//console.log(user);
}
您应该必须使用 AuthGuard 来解码 JwtToken
请参考以下来自 NestJs 的文档 https://docs.nestjs.com/security/authentication#implementing-passport-jwt