feat: implement privacy-aware profile visibility and activity status filtering using optional authentication guard
This commit is contained in:
18
src/auth/guards/optional-auth.guard.ts
Normal file
18
src/auth/guards/optional-auth.guard.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { Injectable, ExecutionContext } from '@nestjs/common';
|
||||
import { AuthGuard } from '@nestjs/passport';
|
||||
|
||||
/**
|
||||
* Optional JWT auth guard — extracts user if token is present, but doesn't reject if missing.
|
||||
* Use on public endpoints that behave differently for authenticated users (e.g., privacy filtering).
|
||||
*/
|
||||
@Injectable()
|
||||
export class OptionalAuthGuard extends AuthGuard('jwt') {
|
||||
canActivate(context: ExecutionContext) {
|
||||
return super.canActivate(context);
|
||||
}
|
||||
|
||||
handleRequest(err: any, user: any) {
|
||||
// Don't throw on missing/invalid token — just return null
|
||||
return user || null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user