## Overview Set up the JWT authentication infrastructure: Passport JWT strategy, JWT guard, and the `@CurrentUser` decorator inside `backend/contrib/`. ## Location All work must be inside `backend/contrib/src/auth/`. ## Acceptance Criteria - [ ] `JwtStrategy` extends `PassportStrategy(Strategy)` and validates JWT payload by fetching user from DB - [ ] `JwtAuthGuard` extends `AuthGuard("jwt")` from `@nestjs/passport` - [ ] `@CurrentUser()` parameter decorator extracts the authenticated user from `req.user` - [ ] `AuthModule` imports `PassportModule` and `JwtModule.registerAsync` using config service - [ ] Access token expiry is 15 minutes, refresh token expiry is 7 days
Overview
Set up the JWT authentication infrastructure: Passport JWT strategy, JWT guard, and the
@CurrentUserdecorator insidebackend/contrib/.Location
All work must be inside
backend/contrib/src/auth/.Acceptance Criteria
JwtStrategyextendsPassportStrategy(Strategy)and validates JWT payload by fetching user from DBJwtAuthGuardextendsAuthGuard("jwt")from@nestjs/passport@CurrentUser()parameter decorator extracts the authenticated user fromreq.userAuthModuleimportsPassportModuleandJwtModule.registerAsyncusing config service