javascript - Chyba medzi nginx a autentifikačnou časťou nestjs
Snažím sa použiť backend NestJS s reverzným proxy Nginx. V backende NestJS som naprogramoval časť autentifikácie.
Môj problém je, že keď som používal svoj frontend/backend v lokálnom režime, všetko bolo v poriadku. Keď ho používam cez Nginx, vždy dostanem chybu 401. Myslím si, že je to kvôli LocalStrategy v NestJS
Tu je časť v súbore 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;
}
}
Tu je časť v súbore app.controller.ts
@Public()
@UseGuards(LocalAuthGuard)
@Post('auth/login')
async login(@Request() req) {
return this.authService.login(req.user);
}
Ale neviem, ako to zmeniť. Ak niekto má príklad, bolo by to skvelé. Vopred ďakujem.
Odpoveď č. 1
Testoval som lokálne na serveri pomocou curl (bez nginx). Videl som svoju chybu (prístup k MySQL na testovanie používateľa), nebola spôsobená konfiguráciou nginx.