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 + GraphQL 更改 ValidationPipe 错误