Jwt 개요

kkambbak1·2023년 12월 6일
0

기존 세션 방식의 문제점
1. cors 오류 발생
둘이 다른 서버가 돌아감 특정ip한테만 줄수있다.
해마다 점점 보안강화가 이뤄져 각태그나 jquery 등등에 cors해제에 대한 속성을 갖고 있다.
2. 프론트서버와 백엔드 서버가 서로 다른 프로세스이므로
프론트서버에서는 세션객체를 알길이 없다.

json 형태로 정보를 묶어서 암호화해서 배포
혹시 탈취되더라도 별 볼일 없는 정보 사용자 아이디나 이름정도만 넣어서 사용

1) login(토큰 최초 요청시)
id와 패스워드 최초로 두개의 토큰을 발행한다. (access token, refresh token)
access token은 만료일 짧게 => 빨리 만료.
서버가 니 토큰 만료됏어 => refresh token 가지고 서버에 다시 요청
=> 서버가 어 리프레쉬토큰 맞네. 다시 토큰 발행해줌.

프론트 -----------------------------> 백엔드
2. 아이디,패스워드 입력
/member/login 호출

<---------------아이디/비밀번호 검증해서 토큰 발급

프론트에서 토큰을 저장해둬야함.

토큰을 axios나 fetch, ajax함수나 헤더정보를 추가해서 보낸다.
bearer 토큰값-----------> 스프링백엔드에서 받아서 jwt필터를 거쳐서 토큰이 정상이면 securitycontext에 userdetails 객체를 저장

다음에 찾아볼 사항

userdetails은 어떻게 가져오는걸까?
어떤 시점에 authentication 객체가 필요없어질텐데, 어떻게 없애는 걸까?

profile
윤성

0개의 댓글