diff --git a/backend/src/auth/jwt-auth.guard.ts b/backend/src/auth/jwt-auth.guard.ts index cd8fb83f..9c54f672 100644 --- a/backend/src/auth/jwt-auth.guard.ts +++ b/backend/src/auth/jwt-auth.guard.ts @@ -10,11 +10,23 @@ export class JwtAuthGuard extends AuthGuard('jwt') { } canActivate(context: ExecutionContext) { + const request = context.switchToHttp().getRequest(); + const authHeader = request.headers.authorization; + const path = request.path; + const method = request.method; + console.log(`[JwtAuthGuard.canActivate] ${method} ${path}`); + console.log(`[JwtAuthGuard.canActivate] Authorization header:`, authHeader ? 'YES' : 'NO'); + const isPublic = this.reflector.getAllAndOverride(IS_PUBLIC_KEY, [ context.getHandler(), context.getClass(), ]); + console.log(`[JwtAuthGuard.canActivate] isPublic:`, isPublic); + if (isPublic) return true; - return super.canActivate(context); + + const result = super.canActivate(context); + console.log(`[JwtAuthGuard.canActivate] super.canActivate result:`, result); + return result; } } diff --git a/backend/src/auth/jwt.strategy.ts b/backend/src/auth/jwt.strategy.ts index ac7aaf18..bb48e096 100644 --- a/backend/src/auth/jwt.strategy.ts +++ b/backend/src/auth/jwt.strategy.ts @@ -13,6 +13,9 @@ export class JwtStrategy extends PassportStrategy(Strategy) { } async validate(payload: { sub: number; username: string; role: string; isPremium: boolean }) { - return { userId: payload.sub, username: payload.username, role: payload.role ?? 'user', isPremium: payload.isPremium ?? false }; + console.log('[JwtStrategy.validate] Payload received:', payload); + const result = { userId: payload.sub, username: payload.username, role: payload.role ?? 'user', isPremium: payload.isPremium ?? false }; + console.log('[JwtStrategy.validate] Returning user:', result); + return result; } } diff --git a/backend/src/products/products.controller.ts b/backend/src/products/products.controller.ts index c102066c..fd9f950b 100644 --- a/backend/src/products/products.controller.ts +++ b/backend/src/products/products.controller.ts @@ -127,8 +127,8 @@ export class ProductsController { @Roles('admin') @Post() - create(@Body() body: CreateProductDto) { - return this.productsService.create(body); + create(@Body() body: CreateProductDto, @Request() req: any) { + console.log('[ProductsController.create] Request received');\n console.log('[ProductsController.create] User:', req.user);\n console.log('[ProductsController.create] Body:', body);\n return this.productsService.create(body); } @Post('pending')