예를들어 안드로이드 todo list앱을 만들고 todo 서버도 만드는 상황. OAuth2서버는 구글을 쓴다고 가정.

이해한 순서:
1. 앱이 google oauth2 로그인 페이지로 이동시킴
여기서 redirect_url을 loopback으로 설정해서 auth code를 앱이 받을 수 있도록 함

2. 앱이 auth code를 받으면 이거로 구글서버에 토큰 요청함
이러면 refresh_token과 access_token, 그리고 jwt토큰인 id_token을 얻는거같음

3. 앱이 jwt토큰인 id_token을 header에 담아서 todo서버로 여러 요청을 보냄

4. todo서버가 jwt토큰 유효성 검사하고 email등을 이용해서 사용자를 구분.


이렇게 하려고 했는데 여기서 질문

1번 질문: 2번 과정에서 토큰 요청할때 스니핑을 해서 auth code를 탈취할 수 있는 위험이 있는거 아님??

2번 질문: 이 과정이 맞다면 궁금한거. refresh_token도 만료기간을 설정하던데 이러먼 사용자는 수시로 로그인을 해야하는거 아닌가? 영구적인 로그인을 구현하고싶은데? 그렇다고 refresh_token의 만료기간을 없애는건 또 보안문제라고 하는거같음

도대체 어떤 흐름으로 구현해야하는게 맞는건가요? 단지 서버에 접속하는 클라이언트가 누군지 구벌하고싶은건데 자꾸 헷갈려요


- dc official App