feat: implement privacy-aware profile visibility and activity status filtering using optional authentication guard

This commit is contained in:
pradeepkumar
2026-03-28 18:46:49 +05:30
parent ba931c350b
commit a71145f6a6
8 changed files with 235 additions and 38 deletions

View 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;
}
}