جافاسكريبت - خطأ بين جزء المصادقة في nginx و nestjs
أحاول استخدام باك إند NestJS مع بروكسي عكسي Nginx. لقد قمت ببرمجة جزء المصادقة في باك إند NestJS الخاص بي.
مشكلة هي أنه عندما استخدمت الواجهة الأمامية/الخلفية في الوضع المحلي، كل شيء على ما يرام. عندما أستخدمها من خلال Nginx، أحصل دائمًا على خطأ 401. أعتقد أن السبب هو LocalStrategy في NestJS
إليك الجزء الموجود في ملف 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.