auth guards added

This commit is contained in:
sdraris 2025-08-27 14:47:35 +02:00
parent 5387d67162
commit 6eab2613e4
2 changed files with 36 additions and 0 deletions

View File

@ -0,0 +1,29 @@
import { CanActivate, ExecutionContext, Injectable, UnauthorizedException } from "@nestjs/common";
import { JwtService } from "@nestjs/jwt";
import { Request } from 'express';
@Injectable()
export class AuthGuard implements CanActivate {
constructor(private readonly jwtService: JwtService) {}
async canActivate(context: ExecutionContext): Promise<boolean> {
const request = context.switchToHttp().getRequest<Request>();
const authHeader = request.headers['authorization'] as string | undefined;
if (!authHeader || !authHeader.startsWith('Bearer')) {
throw new UnauthorizedException('Token manquant ou invalide');
}
const token = authHeader.split(' ')[1];
try {
const payload = await this.jwtService.verifyAsync(token,
{ secret: process.env.JWT_SECRET },
);
request.user = payload;
return true;
} catch (error) {
throw new UnauthorizedException('Token invalide ou expire');
}
}
}

7
src/types/express/index.d.ts vendored Normal file
View File

@ -0,0 +1,7 @@
import { Users } from 'src/entities/users.entity';
declare module 'express-serve-static-core' {
interface Request {
user?: Users | any;
}
}