feat: 添加环境变量配置并优化部署路径
添加开发和生产环境变量文件 更新前端构建命令以使用不同模式 优化部署脚本中的前端部署路径 在认证守卫中添加日志记录
This commit is contained in:
@@ -3,6 +3,7 @@ import {
|
||||
ExecutionContext,
|
||||
Injectable,
|
||||
UnauthorizedException,
|
||||
Logger,
|
||||
} from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { Request } from 'express';
|
||||
@@ -10,6 +11,8 @@ import { UsersService } from '../../users/users.service';
|
||||
|
||||
@Injectable()
|
||||
export class AuthGuard implements CanActivate {
|
||||
private readonly logger = new Logger(AuthGuard.name);
|
||||
|
||||
constructor(
|
||||
private configService: ConfigService,
|
||||
private usersService: UsersService,
|
||||
@@ -22,6 +25,8 @@ export class AuthGuard implements CanActivate {
|
||||
const enableBasicAuth =
|
||||
this.configService.get<string>('ENABLE_BASIC_AUTH') === 'true';
|
||||
|
||||
this.logger.log(`Basic Auth enabled: ${enableBasicAuth}`);
|
||||
|
||||
if (!enableBasicAuth) {
|
||||
// 如果未启用 Basic Auth,允许所有访问
|
||||
return true;
|
||||
@@ -31,6 +36,7 @@ export class AuthGuard implements CanActivate {
|
||||
const authHeader = request.headers['authorization'] as string;
|
||||
|
||||
if (!authHeader || !authHeader.startsWith('Basic ')) {
|
||||
this.logger.warn('Missing or invalid Authorization header');
|
||||
throw new UnauthorizedException('Missing or invalid Authorization header');
|
||||
}
|
||||
|
||||
@@ -42,16 +48,22 @@ export class AuthGuard implements CanActivate {
|
||||
const [username, password] = credentials.split(':');
|
||||
|
||||
if (!username || !password) {
|
||||
this.logger.warn('Invalid credentials format');
|
||||
throw new UnauthorizedException('Invalid credentials format');
|
||||
}
|
||||
|
||||
this.logger.log(`Attempting login for user: ${username}`);
|
||||
|
||||
// 验证用户
|
||||
const user = await this.usersService.validateUser(username, password);
|
||||
|
||||
if (!user) {
|
||||
this.logger.warn(`Login failed for user: ${username} - Invalid username or password`);
|
||||
throw new UnauthorizedException('Invalid username or password');
|
||||
}
|
||||
|
||||
this.logger.log(`User ${username} logged in successfully`);
|
||||
|
||||
// 将用户信息附加到请求对象
|
||||
(request as any).user = user;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user