TIL

9/22

iksadnorth 2023. 9. 22. 23:33

👣 개요

오늘은 검색 기능의 페이징 구현과 소셜 로그인을 구현 완료하는 날이었다.

검색 기능의 페이징은 QueryDSL을 이용해서 해결했다.
해당 기능을 위해 기존 쿼리에 limit과 offset을 설정했다.
그리고 TotalElements 갯수를 찾기 위해 Count Query를 따로 작성했다.
처음에는 기존 코드에 단순히 fetchCount()를 이용해서 count 쿼리를 
보내려고 했으나 이것은 이미 deprecated된 기능이어서 직접
select 파라미터에 count를 이용해서 카운트 쿼리를 보내게 했다.

문제는 소셜 로그인이었다.
로컬 서버에서 소셜 로그인을 수행할 때는 분명 문제가 없었다.
redirect_url도 정확히 설정했고 Cors 설정도 정확히 했고
실제로 소셜로그인에 의해 access token도 받고 해당 access token으로 유저 정보도 받고 있고
해당 정보로 우리 애플리케이션에서 사용할 jwt를 만들고 쿠키로 넘기는 구조임을 다시 확인했었다.

분명히 jwt 토큰이 담긴 쿠키를 [localhost:8080 -> localhost:3000]으로 넘기는 것을 확인했었다.
하지만 쿠키를 [3.36.142.52:8080 -> localhost:3000]으로 넘기는 과정이 실행되지 않았다.

처음에는 Cors 설정이 덜되어 있는 줄 알았다.

이와 같이 Allow-Credential도 true로 설정되어 있었기에
서버 측에서의 문제는 없다고 판단했다.

그래서 웹 브라우저의 개발자 도구를 이용해서 쿠키가 서버로부터 전달받는지를 확인했다.
정말 충격적이게도 실제로 쿠키가 header를 통해 들어오는 것을 확인했고
단순히 브라우저가 쿠키를 로컬에 저장하지 않을 뿐이었다.

도저히 이해가 가지 않았다. 왜 서버로부터 온 정보를 js로도 접근할 수 없고 
쿠키임에도 불구하고 자동으로 저장하지 않는지 알 수 없었다.

이런 점을 파고 들어보니 도메인이 다른 서버로의 쿠키는 허용하지 않는 경향성이 있다는 것을 
깨달았다. 하지만 이것을 해결할만한 방안을 아직 찾지 못해서 이것을 찾아볼 계획 중에 있다.

'TIL' 카테고리의 다른 글

9/25  (0) 2023.09.25
9/23  (0) 2023.09.23
9/21  (0) 2023.09.21
9/20  (0) 2023.09.20
9/19  (0) 2023.09.19