so I have a nestjs application with session authentication from passport js. Then I want to access user data from the session for the need to check existing roles like this
@Injectable()
export class RoleGuard implements CanActivate {
constructor(private reflector: Reflector){}
canActivate(context: ExecutionContext): boolean | Promise<boolean> | Observable<boolean> {
const requiredRole = this.reflector.getAllAndOverride<Roles[]>('role', [
context.getHandler(),
context.getClass()
]);
if(!requiredRole || requiredRole.length === 0) return true; //if there is no role, then the route will be considered public
const { session } = context.switchToHttp().getRequest<Request>();
return requiredRole.some((role) => session.user.role.includes(role));
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}
}
And then i got an error like this : Property 'user' does not exist on type 'Session & Partial<SessionData>'.
so, how do I get the user data from session??
I wanted to check the user data from session and the relation of role.