인증과 인가

Younghwan Cha·2023년 3월 12일
0

Authentication vs Authorization

인증 ( Authentication )

요청자가 자신이 누구인지 증명하는 과정

인가 ( Authorization )

인증을 통과한 유저가 요청한 기능을 사용할 권한이 있는지를 판별하는 것

status code

하지만, status code 를 한번 보도록하자.
인증에 실패했을 경우 401 UnAuthorized
인가에 실패했을 경우 403 Forbidden
위와 같은 status code 를 반환 받기 때문에 헷갈릴 수 있는 점이 존재한다.


인증 ( Authentication )

인증 방식에는 여러가지 방법들이 존재하지만, 주로 session 혹은 token 을 사용한 인증 방법을 많이 사용한다.

  • local storage
    창을 닫아도 데이터가 유지
  • session storage
    브라우저를 닫거나 새로운 탭 또는 창을 열면 데이터가 삭제
  • cookie
    간단한 데이터를 저장
  • JWT
    JSON WEB TOKEN,
    Header, Payload, Signature 3가지 요소를 가지며, 각자는 . 으로 구분된다.

[jwt.io] https://jwt.io/


구현

인증의 경우 미들웨어Middleware, 인가의 경우 가드Guard를 이용하여 구현하는 것이 좋다.
미들웨어는 실행 콘텍스트ExecutionContext 에 접근하지 못하기 때문에 자신의 일만 수행하고 next() 를 호출하기 때문에 다음에 어떤 핸들러가 실행될지 알 수 없다. 반면에, 가드의 경우 실행 콘텍스트 인스턴스에 접근 할 수 있기 때문에 다음 실행될 작업을 정확히 알 수 있다.

profile
개발 기록

0개의 댓글