토큰 기반 인증이란?
간단히 말해 토큰을 사용하여 유저들의 인증작업을 처리하는 방법
사용하는 이유는?
Stateless 서버
간단히 요약하면 Stateful 서버와는 반대이다.
기존에 많이 사용된 방식인 세션 기반 인증은 Stateful 서버라고 한다.
Stateful 서버는 클라이언트에게서 요청을 받을 때 마다, 클라이언트의 상태를 계속해서 유지하고, 이 정보를 서비스 제공에 이용
상태를 유지하지 않기 때문에 서버의 확장성에 높아진다.
모바일 어플리케이션
인증정보 공유 (OAuth)
보안
왜 사용하게 돼었을까?
먼저 세션 기반 인증 시스템을 설명하면,
- 유저가 인증 시 서버는 세션을 저장해야 한다. 메모리 또는 DB에 저장해야 하는데 성능 상 문제
- 세션을 사용하면서 분산된 시스템을 설계하는 어려움, 확장성 불편
- 세션 관리를 위한 쿠키는 CORS에서 관리하기 번거로움
토큰 기반 인증 시스템은,
- 세션이 없으니 위에서 말한 성능 상 문제, 확장성 문제 해결
- CORS 문제도 더 편함
그래서 동작 방식은?
- 유저가 로그인 시도
- 서버에서 검증 후 맞다면 토큰 발행
- 클라이언트에서는 발행받은 토큰을 저장하고, 요청 시 마다 토큰을 서버에 전달
토큰 기반 인증 시스템의 구현체인 JWT를 이용해서 프로젝트를 만들어 보자.
'유용한 것들?' 카테고리의 다른 글
Windows Terminal (0) | 2019.11.26 |
---|
댓글