이전에 회사 내부에서만 쓰이는 프로젝트에 jwt 로긴 만든적이 있음

솔직히 내부에서만 쓰는거라 크게 신경 안쓰고 쿠키에 한달짜리 토큰 하나만 저장하는식으로함


이때 내가 이해한 기본적인 개념은

해킹 우려때문에 jwt 토큰은 httponly 쿠키로만 저장한다라고 알고있음


근데 이번엔 외부에 공개된 로긴을 하나 만들어야하는데

예전부터 들었던 엑세스랑 리프레시 적용을 하려고함,

개념은 알고있는데 인터넷에 암만 찾아봐도 실제로 구현한 예제는 없더라

누가 써놓은거 퍼나르고 퍼날라서 이곳저곳 개념설명한 글은 많은데 정작 실제로 만드는건 절대 안보여줌




아무튼 내가 이해한 개념으로는


1. 로그인시 액세스 토큰,리프레시 토큰 두개를 받는다

2. 리프레시는 저장해두고 요청할때는 액세스 토큰만 쓴다

3. 만약 액세스 토큰이 만료 됬으면 리프레시 토큰으로 갱신하는 요청을한다


이렇게만 알고있는데 이걸 실제로 구현 하려니까 리프레시 토큰을 어디다 저장하라는지에 대한 답이 죄다 제각각이라는겅미




첫번째로 토큰을 브라우저 localstorage에 처넣으라는거는 

httponly에만 저장하라던거랑 말이 완전히 다르고


두번째는 둘다 httponly 쿠키로 저장하는건데 이러면

어짜피 털리면 둘다 털릴께 뻔한데 토큰 하나만 썻을때랑 무 슨 차이가 있냐는거고


마지막으로 세번째는

리프레시를 백엔드에다 저장하는건데

이러면 애초에 백엔드에서 로긴상태를 저장안하려고 jwt 도입한 의미가 없어지는건데

이짓을 왜하는지 이해가 안함






오늘 하루종일 이거 관련해서 찾아보다가

결국 돌고돌아서 위에 3가지 내용만 계속 처보고 있었음

뭔가 실제로 쓰인 예제라도 찾았으면 하는데 안보임

뭐가 정답인가여?