What add request.login in nestjs

Viewed 571

I have passport local guard:

export class LocalGuard extends AuthGuard('local') {
  async canActivate(context: ExecutionContext): Promise<boolean> {
    const result = (await super.canActivate(context)) as boolean;
    await super.logIn(context.switchToHttp().getRequest());
    return result;
  }
}

And I implemented guard for google auth like:

export class GoogleAuthGuard implements CanActivate {
  canActivate(
    context: ExecutionContext,
  ){
    const req = context.switchToHttp().getRequest();
    // get access token from request...
    const user = // validate against google api 
    request.login(user, (err) => {});

    return true;
  }
}

I implemented guard with direct calls to google api to validate access token as I see that passport doesn't have something similar to just authenticate access token.
With request.login() express-session is created and stored in redis it's all fine.

I just don't understand from where this request.login() is coming?

What adds it, passport (I don't use it in this guard), nestjs or session-express.

1 Answers
Related