나는 옛날에 OAuth2로 구글 로그인, 로그아웃을 플러터로 구현한 바 있다.
플러터에서는 그 과정이 굉장히 쉽다.
디버그 모드랑 프로덕션 모드에서 설정하는 게 머리 아파서 그렇지
설정을 제외하고 기능 구현 그 자체는 정말로 어렵지가 않다.
그래서 그걸 스프링부트에서 구현하는 게 이렇게 골치 아플 줄은 정말 상상도 못 했다.
액세스 토큰, 리프레시 토큰도 관리하니 머리가 정말 터지는 줄 알았다.
책과 다르게 스프링 시큐리티 최신 버전을 적용하고 있기에 코드도 내가 다 알아서 쳐야 했다.
어쨌든, 결론은, 구현을 다 했다.
그런데 이게 어떻게, 왜 이렇게 돌아가는 줄 모르겠다. ㅠㅠ
특히 시큐리티 설정을 내가 어떻게 '돌아가게'는 해 놨는데
정말 본능적으로 코드를 적용했지 어떻게 그 문법이 맞는지도 모르겠다. ㅠㅠ
미치고 팔짝 뛰겠는 게 내 입장이다.
그런데 그렇다고 지금 코드를 하나 하나 뜯고 있을 입장도 아니다.
우선 해당 기능을 내 프로젝트에 적용해야 하고
이직을 위한 포폴 작업도 빨리 마무리 해야 하기 때문이다.
그래서 <과감하게> 본 장에 대한 설명은 건너 뛴다.
이 장의 내용은 누가 설명해 준다고 머리에 들어올 거 같지도 않다.
이 과정을 배우려면
1. 코드를 직접 쳐 봐야 하고
2. 어떤 플로우로 도는 지 경험을 해야 한다.
스프링 시큐리티 최신 버전 적용을 원하거나
책에서 약간 표시가 잘못된 부분으로 머리 아프기 싫다면
https://github.com/JaeeunSkywalker/jaeeunTheBlackrabbit/tree/b6fb3db253e3600600270016dd97c6a35627e46f
10장을 마무리한 이 지점을 참고하면 된다.
안에 코드를 보면 원본 코드랑 좀 다른 부분이 있을 것이다.
거의 다 보안을 위해 코드를 바꾼 경우다.
쿠키에 httponly, secure 이런 것도 적용했었으나
refresh_token 값을 읽어 액세스 토큰을 재발행할 때 문제가 되었기에 삭제했다.
본 장에 대해서도 진짜 진짜 이야기할 거리가 많은데
난 이제 지쳤어요.
ddaengbul... ddaengbul...
이 글은 골든래빗 《스프링 부트 3 백엔드 개발자 되기 - 자바 편》의 10장 써머리입니다.