-
2022.01.17 기록장TIL 2022. 1. 18. 00:39
ToDo
- 레스트 덕 adoc 자동 생성
- 모니터링 알아보기
- 젠킨스 job 추가
- 서브넷 마스크 아웃바운드
- security 소셜 로그인 끝내기
Done
- security 소셜 로그인 끝내기
Weekly goal
- 사이드 api 개발
소셜 로그인
지난번에는 spring security를 이용한 소셜 로그인 flow를 알아봤다.
근데 나는 세션 방식이 아닌 토큰 인증 방식을 쓰기 때문에 front end에게 전달할 방법이 마땅치 않았다.
front는 a tag를 통해 정보 입력창을 받고 리다이렉트 된 code를 server에서 잡아서 처리하고 다시 redirect를 보내기에..
처음에는 query string에 담아야하나 생각하다가 스택 오버 플로에 같은 고민을 했던 사람을 찾았다.
How to provide frontend with JSON web token after server authentication?
So far I have only dealt with server-rendered apps, where after a user logs in via username/password or using an OAuth provider (Facebook etc.), the server just sets a session cookie while redirect...
stackoverflow.com
해결법
1. 쿠키
2. 쿼리 스트링
3. 리다이렉트 페이지에서 local storage에 넣기
각 단점은 1,2은 보안에 약점이 있음
3번은 없어 보임
3번이 인상깊어 적용시켜보려 했으나 리다이렉트 url을 내가 제어하는 것이 아닌 spring security에서 제어를 해서 redirect 할 수밖에 없어 적용시킬 수 없다.
만약 내가 직접 구현을 했다면 controller에서 code를 직접 받아서 정보를 요청하고나서 view resolver를 통해 특정 page로 보내고 그곳에서 js를 통해 프런트로 redirect 할 수 있을 것이다.
방금 다시 해봤는데 response를 redirect하는 것이 아닌 forward 하면 사용 가능할 듯하다. 이건 내일마저 쓴다
01.20
ok forward 방식으로 구현은 가능하다. 단 위의 블로그 글 댓글에도 써 있는 것을 늦게 발견했는데 localstorage 같은 경우에는 같은 도메인에서만 공유가 가능하다. 본인은 서버는 8080 프런트는 3000이기에 4번으로 구현은 불가능하다는 것이다.
'TIL' 카테고리의 다른 글
2022.01.28 기록장 (0) 2022.01.28 2022.01.23 기록장 (0) 2022.01.23 2022.01.13 기록장 (0) 2022.01.12 2022.01.01~12 기록장 (0) 2022.01.01 2021.12.29~31 기록장 (0) 2021.12.28