This commit is contained in:
2025-11-16 10:37:03 +03:30
parent ad4b2e2c89
commit fae765e05a
8 changed files with 45 additions and 30 deletions
+9 -7
View File
@@ -1,23 +1,25 @@
import { CanActivate, ExecutionContext, Injectable, UnauthorizedException } from '@nestjs/common';
import { CanActivate, ExecutionContext, Injectable, UnauthorizedException, Inject } from '@nestjs/common';
import { Request } from 'express';
import { JwtService } from '@nestjs/jwt';
import { ConfigService } from '@nestjs/config';
import { ITokenPayload } from '../interfaces/IToken-payload';
import { IAdminTokenPayload } from '../interfaces/IToken-payload';
export interface AuthRequest extends Request {
userId: string;
export interface AdminAuthRequest extends Request {
adminId: string;
restId: string;
}
@Injectable()
export class AdminAuthGuard implements CanActivate {
constructor(
@Inject(JwtService)
private readonly jwtService: JwtService,
@Inject(ConfigService)
private readonly configService: ConfigService,
) {}
async canActivate(context: ExecutionContext) {
const request = context.switchToHttp().getRequest<AuthRequest>();
const request = context.switchToHttp().getRequest<AdminAuthRequest>();
try {
const secret = this.configService.get<string>('JWT_SECRET');
@@ -27,10 +29,10 @@ export class AdminAuthGuard implements CanActivate {
}
try {
const payload = await this.jwtService.verifyAsync<ITokenPayload>(token, {
const payload = await this.jwtService.verifyAsync<IAdminTokenPayload>(token, {
secret,
});
request['userId'] = payload.userId;
request['adminId'] = payload.adminId;
request['restId'] = payload.restId;
} catch {
throw new UnauthorizedException();