인증 ( Authentication )
요청자가 자신이 누구인지 증명하는 과정
인가 ( Authorization )
인증을 통과한 유저가 요청한 기능을 사용할 권한이 있는지를 판별하는 것
하지만, status code 를 한번 보도록하자.
인증에 실패했을 경우 401 UnAuthorized
인가에 실패했을 경우 403 Forbidden
위와 같은 status code 를 반환 받기 때문에 헷갈릴 수 있는 점이 존재한다.
인증 방식에는 여러가지 방법들이 존재하지만, 주로 session
혹은 token
을 사용한 인증 방법을 많이 사용한다.
.
으로 구분된다. [jwt.io] https://jwt.io/
인증의 경우 미들웨어Middleware
, 인가의 경우 가드Guard
를 이용하여 구현하는 것이 좋다.
미들웨어는 실행 콘텍스트ExecutionContext
에 접근하지 못하기 때문에 자신의 일만 수행하고 next()
를 호출하기 때문에 다음에 어떤 핸들러가 실행될지 알 수 없다. 반면에, 가드의 경우 실행 콘텍스트 인스턴스에 접근 할 수 있기 때문에 다음 실행될 작업을 정확히 알 수 있다.