파이어베이스 로그인 방식말고 JWT 방식 로그인을 구현해 볼 예정이다
JSON 웹 토큰은 선택적 서명 및 선택적 암호화를 사용하여 데이터를 만들기 위한 인터넷 표준으로,
페이로드는 몇몇 클레임 표명을 처리하는 JSON을 보관하고 있다.
토큰은 비공개 시크릿 키 또는 공개/비공개 키를 사용하여 서명된다.
쉽게 말해 정보 전달 및 권한 인가(Authorization)을 위해 사용되는 JSON 형태의 웹 토큰이다.
- Access Token : 실질적인 인증을 위한 JWT로 유효기간이 매우 짧은 특징을 가지고 있다.
- Refresh Token : Access Token의 짧은 유효기간을 보완하기 위해 사용되며, 본 토큰을 사용해 Access Token 만료 시 재발급을 위해 사용된다.
- JWT에는 accessToken과 refreshToken이 존재하며, 유저 인증에 사용된다. 실질적인 인증 정보는 accessToken에 있지만, 일정 시간이 지나면 만료하는 구조를 갖는다.
- refreshToken, accessToken을 클라이언트에 저장해둔다.
이때, refreshToken을 이용하면 로그인은 지속적으로 유지할 수 있다.
refreshToken을 서버에 보내면 그때마다 새로운 accessToken을 발급해 돌려주는 것이다.- accessToken을 필요할 때 서버에 보내면 서버는 토큰이 유효한지 확인한다.
- 클라이언트가 웹사이트에 접속할 때 그 사이트가 사용하게 되는 일련의 작은 기록 파일이라고 생각하면 됨.
- 서버가 클라이언트에 정보를 전달할 때 저장하고자하는 정보를 응답 헤더(Cookie)에 저장하여 전달.
- Key Value 형식의 문자열 형태로 저장.
- 무언가에 대한 특정 인증 정보를 서버가 가지고 있고 그 값을 클라이언트에게 전달하여 마치 키를 주고 자물쇠를 여는 방식으로 인증.
- 세션 ID를 특정 저장소에 저장하여 사용.
방향을 틀어야 겠다, jwt 를 이용하기 위해 server와 토큰을 주고 받아야 하는데... 프론트에서 어떻게 혼자 주고 받지?...
갑자기 방향이 너무 잘못 되었다는 쎄함이 느껴졌다...
잠시 학습을 멈추고, 좀 더 찾아보기로..😨