이 방식을 사용하면 토큰을 어딘가에는 저장을 해야한다
헤더에 넣기 option1. 로컬스토리지 -> con: 스토리지에 영구적으로 저장이된다.
헤더에 넣기 option2. 세션스토리지 -> pro: 브라우저 닫으면 지워진다. con: 새탭을 열면 사용못한다
쿠키에 넣어서보내기 option1. -> the token is discarded after you close the browser window. If you use a session cookie you will be authenticated when opening a link in a new tab, and you're immune to XSRF since you're ignoring the cookie for authentication, you're just using it as token storage.
Con: cookies are sent out for every single request. If this cookie is not marked as https only, you're open to man in the middle attacks
Token Based Authentication은 JWT같이 어떤 여러 정보를 담은 토큰을 말하고 Cookie Based라 함은 단편적으로 Auth ID 같은 걸 만들어서 클라이언트에 인증하는 그런걸 말함, Token Based를 쓰면 어쨌든 어디간에 저장을 해야하고 쿠키를 그 용도로 사용할 수"도" 있다.
Cookie Based 를 stateful인증을 사용한다는 것이다. 그렇기때문에 사용자의 정보를 지속적으로 업데이트 하기위해 Cookie를 백엔드서버에 가지고 있어야한다. 그 저장소는 세션이 될수도 DB가 될수도 있다는거. 그래서 사용자가 많아지면 쿠키를 관리하기 위하여 별도의 시스템이 필요할수있다.
https://han-um.tistory.com/17 -> 구현 로직
https://stackoverflow.com/questions/31309759/what-is-secret-key-for-jwt-based-authentication-and-how-to-generate-it -> what is jwt secret key
https://www.grc.com/passwords.htm -> powerful secret key
https://www.viralpatel.net/java-create-validate-jwt-token/ -> validate token
회사