• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

passport 관련해서 여쭙니다.

23.11.15 18:05 작성 23.11.15 18:06 수정 조회수 135

0

프론트쪽에서 워크스페이스 유저 초대를 하면

서버쪽에서는 해당 기능을 요청한 유저가 워크스페이스 오너인지 체크하려고 합니다..

AuthGuard를 확장한 OwnerAuthGuard에서 워크스페이스 레포지터리를 임포트해 db조회해서

요청자가 owner인지 아닌 지 체크하려고 하는 데 passport의 패턴에 어긋나거나 성능상의 문제가 있을까요?

공식문서나 구글링을 해보면 전부 jwt나 아이디, 비밀번호 체크하는 것만 있어서 확실치 않아 질문 드립니다.

@Injectable()
export class OwnerAuthGuard extends AuthGuard('owner') {
  async canActivate(context: ExecutionContext): Promise<boolean> {
    const can = await super.canActivate(context);
    console.log('LocalAuthGuard can:' + can);
    if (can) {
      const request = context.switchToHttp().getRequest();
      //여기서 세션에 저장된 id로 workspace테이블을 조회
    }
    return true;
  }
}

답변 1

답변을 작성해보세요.

0

거기서 레포지토리 인젝트하셔도 됩니다. 좀 더 추천되는 건 서비스로 분리해서 만드는 거긴 합니다. ㅎㅎ