일단 공부의 목적이 가장 컸지만 그래도 나름의 근거를 가지고 시도했다, xss 와 csrf 에 관한거는 제외하고 구현함 (추후에 공부해볼 예정)
access token 을 JS 전역변수로 하려했는데 일단 프런트 지식(Redux 라는것을 이요하면 된다고 하는데,,, 추후에 알게되면 더 해보자)에 대한 부재로 쿠키에 저장
현재 단계에서는 크게 의미가 없다고 생각되서 진행하지 않았다. 지금 SSR 방식의 렌더링을 사용하고 있는데 JS private 변수를 사용하면 새로고침 할 때마다 다시 이 변수가 초기화된다.
CSR 에서는 계속 JS 변수가 남아있기 때문에 괜찮지만 SSR 방식의 경우 매번 access Token 이 날아가기 때문에 다시 요청이 필요하다. 현재로서는 큰 의미 없음. 구현을 해 보았다는것에 의미를 두자 이것때문에 하루 날린거는... 크흠
쿠키는 클라이언트, 서버에서 모두 저장할 수 있다. 일단 서버에서 저장했는데 이유는 서버코드는 브라우저에서 볼 수 없다. 만약 브라우저에서 document.cookie 로 저장한다면 쿠키에 access token 과 uuid 가 저장됨을 알 수 있다.
이번에 처음으로 redis 를 사용해봤다. DB 를 사용할 수도 있었지만 redis 로 구현해 보고 싶었다. 처음 써보는 캐시이기도 하고 어떻게 동작하는지 간단히 공부하는 기회가 되었다.
한가지 의문이 있었다. 쿠키에 토큰값을 저장하면 굳이 authorization header 에 access token 값을 넣어서 전달할 필요 없이 서버에서 바로 확인이 가능하다. 그런데 왜 authorization header 에 넣어서 전달할까?
이에 대해 여러가지 답변이 있었다.
여러가지 의견이 있었고 사실 구현은 선택하는 문제이다. 하지만 아직 부족한 것 같다. 내가 작성하는 코드들에 근거를 갖고 싶은데 아직 모든것을 설명하지 못한다. 더 노력해야 될 것 같다.