相关疑难解决方法(0)

如何在 Nest.js 中获取用户信息?

我正在使用 Angular+Nest 开发一个网站。我创建了一个服务(Angular),以便客户端可以在项目启动时从服务器获取用户信息(与新鲜相同)。有些动作不需要登录,所以登录是可选的。

我想要的是如果用户已经登录,那么客户端应该发送一个请求来获取用户的信息。

服务器代码如下:

export const RequestUser = createParamDecorator((data, req): RequestUserDTO => {
    return req.user;
});

@Controller('auth')
export class AuthController {
  @Get('getUserInfoByToken')
  async getUserInfoByToken(@RequestUser() user: User): Promise<any> {
    if (user) {
      return {
        nickname: user.nickname,
        level: user.level
      };
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,我发现如果我不添加@UseGuards(AuthGuard())为装饰器,就没有任何回报。但是如果我添加它,当项目开始时,这个请求401作为状态代码返回。然后网页将转到登录页面。

我应该怎么做才能避免这种情况?并非每个操作都需要登录。

angular nestjs

4
推荐指数
2
解决办法
6763
查看次数

标签 统计

angular ×1

nestjs ×1