
JWT 방식에서는 로그인(인증)이 성공하면 JWT 발급 문제와 웹/하이브리드/네이티브앱별 특징에 의해 OAuth2 Code Grant 방식 동작의 책임을 프론트엔드 측에 둘 것인지 백엔드 측에 둘 것인지 많은 고민을 한다.
로그인(인증)이 성공하면 JWT를 발급해야 하는 문제
웹/하이브리드/네이티브앱별 특징
위와 같은 문제로 OAuth2 Code Grant 방식 동작에 대한 redirect_url, Access 토큰 발급 문제를 어느 단에서 처리해야 하는지에 대한 구현이 많고 잘못된 구현 방법도 많이 있다.
모든 책임을 프론트가 맡음

프론트단에서(로그인 -> 코드 발급 -> Access 토큰 -> 유저 정보 획득) 과정을 모두 수행한 뒤 백엔드단에서(유저 정보 -> jwt 발급) 방식으로 주로, 네이티브앱에서 사용하는 방식
-> 프론트에서 보낸 유저 정보의 진위 여부를 따지기 위해 추가적인 보안 로직이 필요하다.
책임을 프론트와 백엔드가 나누어 가짐: 잘못된 방식(대부분의 웹 블로그가 이 방식으로 구현)

- 프론트단에서(로그인 -> 코드 발급 -> Access 토큰)후 Access 토큰을 백엔드로 전송, 백엔드단에서(Access 토큰 -> 유저 정보 획득 -> JWT 발급)

카카오와 같은 대형 서비스 개발 포럼 및 보안 규격에서 위와 같은 코드/Access 토큰을 전송하는 방법을 지양함.

-> 백엔드에서 JWT를 발급하는 방식의 고민과 프론트측에서 받는 로직을 처리해야 한다.
참고자료: 개발자 유미 스프링 OAuth2 클라이언트 JWT