찐찐.log
로그인
찐찐.log
로그인
[기본 개념] Token vs Session
찐찐
·
2022년 4월 1일
팔로우
0
0
Session based authentication
사용자가 로그인하면
session data를 sever memory에 저장
한다.
sessionId
는 사용자 브라우저의 cookie에 저장한다.
이후
sessionId
를 통해 server와 client가 정보를 주고 받는다.
Token based authentication
사용자 상태가 client에 저장
된다.
RESTful API를 구현하는데 주로 선호 되는 인증 방식
JWT는 사용자 정보가 암호화 돼서 client에 저장된다.
client는 요청의 header에 JWT를 실어서 보내고, server는 유효성을 검증하고 response를 넘겨준다.
headers:{ "Authorization": "Bearer ${JWT_TOKEN}" }
사용자가 token을 조작할 수 없다. 이미 JWT에서 처리를 다 해놨음. → 서버의 허용 없이 token을 바꿔서 사용할 수 없다!
요즘에는 핸드폰 기기의 인증도 함께하기 위해서 대부분이 JWT를 사용한다.
확장성 비교
session: sever memory에 저장하기 때문에 사용자가 많아지면 issue 발생.
token: client side에 저장하기 때문에 사용자가 많아져도 문제가 없다.
기기 여러대
session: cookie는 단일 혹은 하위 도메인에서 사용됨. 따라서 다른 API를 같이 사용할 경우 문제가 된다.
token: 매 요청마다 header에 넣어주기 때문에 아무런 문제가 없다.
참고
What really is the difference between session and token based authentication
Session vs Token Based Authentication
찐찐
백엔드 개발자 지망생
팔로우
이전 포스트
[express] twilio를 사용해 SMS 인증 구현하기
다음 포스트
[기본 개념] 토큰 저장소: Browser Storage VS cookie
0개의 댓글
댓글 작성