JWT 토큰으로 로그인 상태를 유지하고 싶음
근데 이거 다음에 어떻게 해야될지 모르겠음
위 사진 과정
1. Oauth2 사용자 로그인 성공
2. Access토큰 생성 후, /auth/access URL로 전달
(위 사진 함수 시작)
3. LoginResponse 객체에 Access 토큰을 담음
4. 사용자에게 Access 토큰 정보를 JSON 형태로 보냄
사용자가 Access 토큰을 JSON 형태로 받은 후에는 어떻게 처리하는게 맞는거임?
내가 생각했던 방법은
1. Access 토큰을 Header로 보낸다.
2. HTML에서 헤더를 읽어서 토큰을 받는다.
3. 해당 토큰을 로컬에 저장한다
이건데, 다른 사람들 코드 보면 return을 저렇게 함.
저렇게 하면 /auth/access로 GET 요청을 받았을 때, HTML로 못넘어가서 해당 쿠키를 로컬에 저장 못하지 않음?
그래서 위 사진 다음에 어떻게 진행되는 건지 모르겠음.
2는 callback url에서 받는 code를 보낸다는 거임?
Access토큰을 /auth/access URL에 쿼리 파라미터로 보내고 있음 private String uri = "/auth/access"; String accessToken = tokenProvider.makeAccessToken(authentication); String redirectUrl = UriComponentsBuilder.fromUriString(uri) .queryParam("accessToken", accessToken) .build().toUriString(); response.sendRedirect(redirectUrl);
아 위는 다른 사람이 한거구나
해당 댓글은 삭제되었습니다.
함수의 return 값을 통해서 넘어갈 HTML을 지정하는 거 아님? 위 사진에는 이미 return 값이 존재하니, 넘어갈 HTML을 지정못한다는 의미로 말한거였음
responseentity는 html을 응답하는게 아니고 객체를 응답할때 쓰는거라 loginresponse 객체가 json이든 뭐든 직렬화되서 body가 됨
ResponseEntity는 HTTP 응답 메시지를 관리하는 용도라서 스샷보니까 @Controller 단걸 보면 REST 방식은 아닌 것 같은데 억지로 ResponseEntity 쓰는 것 같네
애초에 잘못된거임?
남들 -> REST 방식으로 해서 ResponseEntity 반환 원하는 방식 -> SSR 방식으로 보이는데 이럴거면 문자열 반환해서 HTML 파일 이름 반환 위에 설명 잘해놨는데 저거 보면될듯
니 생각대로 해도 되고 사진처럼 해도 되고 걍 취향차이
근데 html은 뭔소린지를 모르겠네
토큰을 헤더에 담아서 보내든 json body에 담아서 보내든 브라우저단에서 자바스크립트로 처리하는건 똑같음 근데 쿠키에 토큰을 담아서 보내면 브라우저가 알아서 쿠키는 요청마다 서버에 대신 보내주니까 별도 처리는 필요 없지
3xx redirect로 보내고, 액세스토큰은 Authorization 헤더로 보내라.