nestjs 如何从req中获取从token中解析出的信息
时间: 2024-03-20 07:40:02 浏览: 52
在 NestJS 中,可以使用 `@AuthGuard()` 装饰器来保护路由,确保只有经过身份验证的用户才能访问。在这种情况下,用户的信息将存储在 `req.user` 中。因此,您可以在您的路由处理程序中通过 `req.user` 访问已解析的用户信息。
以下是一些示例代码:
```typescript
import { Controller, Get, Request, UseGuards } from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
@Controller('my-route')
export class MyController {
@Get()
@UseGuards(AuthGuard('jwt'))
myRouteHandler(@Request() req) {
console.log(req.user);
// req.user 包含从 token 中解析出的用户信息
return 'My protected route';
}
}
```
在这个例子中,我们使用了 `@AuthGuard('jwt')` 装饰器来保护路由,并且在处理程序中使用了 `@Request()` 装饰器以访问请求对象。在处理程序中,我们可以通过 `req.user` 访问已解析的用户信息。
请注意,我们还需要在应用程序中配置 Passport 来使用 JwtStrategy。这个过程可能因您的应用程序而异,但是您可以查看 NestJS 的官方文档,以获取有关如何配置 Passport 和 JwtStrategy 的更多信息。
阅读全文