728x90
토큰
- 서버에 접속을 하면서 서버에서 해당 클라이언트에게 인증되었다는 의미로 주는 토큰 ( ex ) 기차표 )
- 이 토큰 유일한 값
- Access Token, Refresh Token 등이 존재
- 이 토큰 자체를 저장하는 방식은 쿠키, 세션 다 가능
- 토큰 자체는 저장소를 따로 쓰지 않기 때문에 메모리를 안잡아먹음
- 탈취 당하면 상황이 조금(?) 심각해짐
- payload는 암호화가 되는게 아니기 때문에 token만들 시 중요한 내용을 담을 수는 없음
- 쿠키, 세션과 다르게 길이가 길어서 요청이 많아지면 조금(?) 부하가 올 수 있음
JWT
- JSON Web Token의 약자로 인증에 필요한 정보들을 암호화시킨 JSON 토큰
- JWT는 이제 서버에서 처리를 하게 되는데 클라이언트에서 로그인을 하게되면 서버가 받아서 그걸 DB에 있는지 살펴 본 후 있는지 없는지에 대한 결과를 다시 클라이언트로 전송
- 보통 서버 단에서 verify혹은 decode로 확인을 해서 체크
- JWT이용하여 Access, Refresh가 있다는 가정하에 Access가 탈취되는걸 방지하기 위해서 시간은 짧게 하되 너무 짧게 하면 계속 요청을 해야하기 때문에 10~15분이 좋고 Refresh는 잘 숨겨서 나중에 만료시간을 체크할때 사용함
- 다른 API를 호출 시에는 미드웨어를 이용하여 그 값이 있는지 없는지 체크한 후 있으면 next()로 보내주고 없으면 에러
헤더(Header).내용(Payload).서명(Signature) | ||
헤더(Header) | 내용(Payload) | 서명(Signature) |
타입 및 해시 알고리즘 종류 | 서버에서 첨부한 내용 | 헤더에 명시된 해시함수, 전자서명 |
728x90
'항해 일지' 카테고리의 다른 글
트랜스파일러와 번들러 (0) | 2022.12.19 |
---|---|
Node.js === single-thread || multiple-thread?? (0) | 2022.12.19 |
깊은 복사 와 얕은 복사 (0) | 2022.12.19 |
동시성과 병렬성 (0) | 2022.12.19 |
call by value 와 call by reference (0) | 2022.12.19 |