nginx和nestjs认证部分之间的错误

Posted

技术标签:

【中文标题】nginx和nestjs认证部分之间的错误【英文标题】:Error between nginx and nestjs authentication part 【发布时间】:2021-12-27 13:39:02 【问题描述】:

我尝试使用带有 nginx 反向代理的 NestJS 后端。 我在我的 NestJS 后端编写了一个身份验证部分。

我的问题是,当我在本地模式下使用我的前端/后端时,一切正常。 当我通过 Nginx 使用它时,我总是检索到 401 错误。 我认为这是由于 NestJS 中的 LocalStrategy

这是local.strategy.ts文件中的部分

import  Strategy  from 'passport-local';
import  PassportStrategy  from '@nestjs/passport';
import  Injectable, UnauthorizedException  from '@nestjs/common';
import  AuthService  from '../auth.service';

@Injectable()
export class LocalStrategy extends PassportStrategy(Strategy) 
  constructor(private authService: AuthService) 
    super(
      usernameField: 'userLogin',
      passwordField: 'userPassword',
    );
  

  async validate(userLogin: string, userPassword: string): Promise<any> 
    const user = await this.authService.validateUser(userLogin, userPassword);
    if (!user) 
      throw new UnauthorizedException();
    
    return user;
  

这是 app.controller.ts 文件中的部分

  @Public()
  @UseGuards(LocalAuthGuard)
  @Post('auth/login')
  async login(@Request() req) 
    return this.authService.login(req.user);
  

但我不知道如何改变它。 如果有人有一个例子,那就太好了。 提前致谢。

【问题讨论】:

【参考方案1】:

我已经在服务器上本地测试了 curl(没有 nginx)。 看到我的错误(mysql访问测试用户),不是nginx配置造成的。

【讨论】:

以上是关于nginx和nestjs认证部分之间的错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥白名单不会出现错误模型 NestJs 的错误

nestjs 使用jwt实现认证

从 NestJS + GraphQL 更改 ValidationPipe 错误

Nestjs(graphql)中不同类型的异常处理

Nestjs - @nestjs/graphql GraphQLGatewayModule 总是返回错误请求

如何在 NestJs 中捕获 Typeorm 事务错误