이때까지의 프로젝트에서는
유저 정보를 담아주는 payload
값을 로컬 스토리지에 저장했는데,
이번 프로젝트에서는 그게 빠지면서 user_id
를 들고 올 방법을 고안했어야했다.
프로젝트 토큰이 커스텀 되어서 정보가 담겨있기 때문에,
이걸 디코딩하면 될 것 같았다.
const token = localStorage.getItem("access");
const payload = token.split(".")[1];
const decodedPayload = JSON.parse(atob(payload));
const userId = decodedPayload["user_id"];
토큰의 header
, payload
, signature
가 .
으로 3등분 되어있다는 걸 응용해서
split
으로 잘라준 뒤, 1번째(0번부터 시작) 값을 들고온다.
그리고 파싱해서, 거기서 user_id
를 찾는 방식이다.
아이디가 잘 찍힌다!!
근데 토큰도 디코딩이 이렇게 쉽게 되면.. 보안성에 문제가 있을 수도 있지 않나?
보안을 강화시킬 수 있는 방법을 더 생각해봐야겠다. (토큰을 한번 더 암호화 해준다던가)