web-socket-jwt전략으로 WebSocketAuthGuard를 만들어줬다.
우선 AuthGuard의 기본 전략은 jwt이다. 만약 jwt로 유지한다면 위에서 구현되어있는 JwtStrategy의 로직이 실행될 것이다.
우리는 jwt전략으로는 토큰에 접근이 불가능하다 그렇기 때문에 새로운 전략으로 생성한 것이다.
이후 AuthGuard의 라이브러리의 코드를 살펴봐야한다.
왜냐하면
가드에서 아무것도 하지 않아도 헤더에 있는 토큰에 접근해서 유효성 검사 후 user를 리턴하기 때문이다.
passport/auth.guard.ts at master · nestjs/passport
위 사이트는 passport라이브러리에서 제공하는 AuthGuard 코드이다.
이 코드에서 getRequest메서드가 파라미터로 실행컨텍스트(ExcutionContext) context를 받아와 http컨텍스트로 변환하여 request를 반환하는것을 확인할 수 있었다.
AuthGuard내부에서 구현이 되어있었기 때문에 아무것도 하지 않아도 요청에 접근이 가능했던 것이다.