This commit is contained in:
2026-08-28 17:31:02 +02:00
commit 2b30e8bd39
694 changed files with 49243 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
import { CanActivate, ExecutionContext, Injectable, UnauthorizedException } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import type { Request } from 'express';
import * as jwt from 'jsonwebtoken';
import { Config } from '../types/Config';
@Injectable()
export class JwtGuard implements CanActivate {
constructor(private readonly configService: ConfigService) {}
canActivate(context: ExecutionContext): boolean {
const request = context.switchToHttp().getRequest<Request>();
const { secret } = this.configService.get('jwt') as Config['jwt'];
const tokenPrefix = 'Bearer ';
const raw: unknown = request.cookies.bearer_token;
if (typeof raw !== 'string' || !raw.startsWith(tokenPrefix)) {
throw new UnauthorizedException();
}
const token = raw.slice(tokenPrefix.length).trim();
if (!token) {
throw new UnauthorizedException();
}
try {
jwt.verify(token, secret);
} catch {
throw new UnauthorizedException();
}
return true;
}
}