트러블이슈

OAuth의 Redirect URL이 향하는 곳

Ahyeon, Jung 2024. 7. 3. 02:49

댓글 달아줘요


1. Redirect URL이 백서버를 향하는 경우  

Redirect URL이 백서버를 향하는 순간, 프론트 => 백 => 구글 => 백으로 향했기 때문에, 구글에서 백으로 리다이렉트 되는 시점에서 프론트와 연결이 끊긴다고 볼 수 있다. 따라서 토큰을 발급한 후에 토큰을 담아 리다이렉트를 시켜주어야 한다.

 

만약 추가정보를 입력하지 않고 구글의 code만으로 유저 생성이 가능하다면, 그대로 로그인 성공을 할 수 있다. 다만 그렇게 되면 로그인 요청을 하면 무조건 생성이 된다는 단점이 있다.

2. Redirect URL이 프론트를 향하는 경우

Redirect URL이 프론트로 리다이렉트되는 경우, 백서버와의 HTTP 통신으로 요청과 응답이 가능하다.


처음에 잘 협의해야하는 이유

이게 생각보다 서로의 입장을 생각안하고 작성하는 경우가 많다. 따로 정하지 않았다가 리다이렉트를 자연스럽게 자신의 분야로 데려와 놓고, 서로 왜 code가 아니라 token을 주고 받지, token이 아니라 code를 주고 받자하는 경우도 많다. 어떻게 보면 백에서 받은 토큰을 어떻게 다시 프론트한테 줘야하는지 고민하는 과정이 이어져서 1의 방법이 탄생한거같기도 하다.

 

나는 1의 방법에서 실제 토큰을 주든, 그냥 단순히 계정확인용 역할을 하는 토큰을 새로 만들어서 주든, 굳이 구글 로그인을 통한 code 주고 받기가 있는데 불필요한 작업이 추가되는 것이며, 리다이렉트를 백에서 하는건 부조리하다고 생각한다. 2의 경우에서도 로그인 페이지를 리다이렉트로 해줘야한다는 의견이 있는데, 좀 더 빠르긴 하지만 개발하는 입장에서 예외사항이 아닌가 싶다.