NestJS Auth - Intro

이게되네·2021년 2월 13일
0

NestJS Auth

목록 보기
1/4
post-thumbnail

인증은 대부분의 애플리케이션에서 필수적인 부분입니다. 인증을 다루는 방식과 전략은 다양합니다.

이 예제에서는 Json Web Token을 이용한 토큰 기반 인증을 사용할 것 입니다.

Index

  • Authentication 이란?
  • Authorization 이란?
  • NestJS Guard 란?

Authentication 이란?

Authentication(인증)은 사용자의 신원을 증명 하는 프로세스입니다. 이 예제에서는 ID/PW로 서비스의 사용자를 증명하고, 서버에서 받은 JSON Web Token을 가지고 필요한 리소스에 접근하여 인증을 합니다.

  • 네이버 로그인 예제
    네이버 로그인

Authorization 이란?

Authorization(인가 또는 권한 부여)란 인증된 주체에게 작업을 수행할 수 있는 사용 권한을 부여하는 작업입니다. 액세스가 허용된 데이터 및 해당 데이터로 할 수 있는 작업을 지정합니다.

사용자를 추방하거나, 특정 데이터(게시글)에 대한 CRUD 권한을 부여 및 지정하는 작업입니다.

  • 네이버 카페 글쓰기 등급제한 예제
    네이버 카페 글쓰기 등급제한 예제

NestJS Guard 란?

NestJS의 Guard는 run-time 중에 주어진 요청을 특정 조건(허가, 역할, ACLs 등)에 따라 route handler가 허가할지 안할지를 결정합니다.

일반적인 Express Application에서 인증은 미들웨어에서 처리되었습니다. 미들웨어는 토큰 유효성 검사 및 request 객체에 속성을 붙이는 것 등이 특정 route context(그리고 그것의 metadata)와 강하게 연결되지 않기 때문에, 미들웨어는 인증에서 괜찮은 선택입니다.

하지만 미들웨어는 next() 함수가 불린 후 어떤 handler가 실행되었는지 모릅니다. 하지만 GuardExecutionContext instance로 접근하여 다음에 실행될 것이 무엇인지 정확히 알고있습니다. 이는 코드를 DRY원칙과 선언적으로 만드는데 도움을 줍니다.

이 예제에서 ExecutionContext를 다룰때 다시 한번 언급하겠습니다.

Reference

NestJS Documents - Guards
JSON Web Tokens

profile
BackEnd Developer

0개의 댓글