세션 기반 로그인 vs. 토큰 기반 로그인
글. 수알치 오상문
세션 베이스 로그인
클라이언트가 로그인하면 서버는 세션 디비에 로그인한 ID에 대해 생성한 '세션ID'와 '이용자ID'를 저장한다,
그리고 클라이언트는 해당 세션ID 정보를 받아서 쿠키에 저장한다.
클라이언트가 해당 서버에 연결할 때 해당 쿠키는 자동으로 서버에 보내지므로
세션DB에 세션ID가 있는지 확인하면 어떤 이용자인지 구분할 수 있다.
쿠키는 지정된 사이트로만 보내진다.
쿠키는 유효시간이 있다.
쿠키에는 인증 정보뿐만 아니라 설정(언어 같은 것) 정보를 담아둘 수 있다.
세션 vs 토큰 vs 쿠키?
동영상: https://www.youtube.com/watch?v=tosLBcAX1vk
토큰 베이스 로그인 (JWT)
세션ID 기반 인증 방식은 웹브라우저에서만 가능하므로,
안드로이드나 iOS 앱에서는 토큰 인증 방식을 이용한다.
세션DB가 필요없으며 유저 인증 작업이 가벼워진다.
로그인유저에 대한 토큰값을 가진 데이터를 주고 받으면서 인증을 처리한다.
즉, 토큰값이 유효한지 계산하는 방식으로 로그인 사용자를 구분할 수 있다.
JWT, TOKEN 베이스 로그인
동영상: https://www.youtube.com/watch?v=zC5dLbZMAW0
[참고] JWT 이중 사용
'접근용 토큰'과 '접근 토큰 refresh 토큰'을 제공한다.
refresh 토큰은 '접근용 토큰'을 재갱신하는 기능을 제공한다.
refresh 토큰이 만료(expire) 되는 경우에는 로그인을 다시 수행해야 한다.
그러므로 refresh 토큰 만료기한은 1년 정도로 충분히 길게 정할 수 있다.
그리고 접근용 토큰은 짧은(10분, 1시간 등) 만료기한 방식으로 처리한다.
JWT 사이트 : https://jwt.io/
'소프트웨어 개발&환경' 카테고리의 다른 글
Nginx 입문용 자료 동영상 (1) | 2023.03.14 |
---|---|
출력 페이지 크기 규격 cm, inch (0) | 2023.03.12 |
아직도 console.log 써서 디버깅? 브라우저에서 디버깅 하는 방법 (0) | 2023.01.15 |
트위터 시스템 디자인, 1억 유저 처리 시스템 비밀 (0) | 2022.11.08 |
엘라스틱서치 http 접속 오류 해결 방법 received plaintext http traffic on an https channel, closing connection netty4httpchannel (0) | 2022.10.04 |