JWT
- Json Web Token의 줄임말
- JSON 객체를 사용하여 정보를 안전성있게 전달해준다
- 제일 많이 사용되는 상황은 로그인
- 토큰을 통해 서버는 권한을 확인하고 유효한 토큰인지 체크하는 작업을 진행하게 되는 것
- 정보교류?
- 암호화 시그니처가 적용되어있어서 정보가 조작되지 않았는지 체크 가능
- 토큰은 어플리케이션과 서버가 통신 및 인증할 때 사용된다
JWT 구조
- aaa.bbb.ccc 구조로 구성되어있는데 복호화하면 3개로 구분가능
- Header
- 시그니처값을 만들어주는 암호화 알고리즘 지정. type은 언제나 jwt로 고정되어있다
- Payload
- Signature
- Header에서 정해둔 암호화 알고리즘을 통해 암호화된 비밀 값
- 헤더의 인코딩값과 정보의 인코딩값을 합친후 비밀키로 해쉬 생성
accessToken / refreshToken
- accessToken
- 매번 인증받을 때 사용하는 토큰 (보통 수명이 짧아)
- refreshToken
- accessToken 유효기간 지났을때, accessToken 재발급을 위한 토큰
장점/단점
장점
- 사용자 인증에 필요한 모든 정보가 토큰에 포함되니까 별도의 인증 저장소는 필요없다