원래 ui를 쫙 깔아놓고 시작하려고 했었는데, 아무래도 급하기도 하고, 시간이 많이 걸릴 것 같은 로그인을 먼저 처리하는게 나을 것 같아서 로그인을 구현해보려고 한다.
사실 나의 경우는, 이번 프로젝트에서는 완성도가 좀 떨어지더라도 백엔드 기술을 더 다뤄보는 것이 목표였어서, 서버쪽에 기능이 좀 더 치중된 rest api 방식으로 카카오 로그인을 구현해 보려고 한다.
flutter - spring으로 카카오 로그인을 구현하는 방식에는 크게 두가지가 있다.
1. rest api 방식
2. flutter sdk 방식
1번의 경우, 내가 이전 포스팅에서 정리했던 전형적인 카카오 로그인 방식에 해당한다.
자세한 것은 이 문서를 참고 바란다.
https://velog.io/@sunj_0120/STUDY-%EC%B9%B4%EC%B9%B4%EC%98%A4-%EB%A1%9C%EA%B7%B8%EC%9D%B8-API-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0
2번의 경우는, 카카오가 플러터의 sdk를 공식 지원하기 때문에, 위와 같은 방법 없이 간단하게 flutter sdk를 이용해서 로그인을 생성하는 방식이다.
이 방식은 모바일 클라이언트가 카카오 서버에게서 유저 정보를 받고, 받은 유저 정보를 우리 서버로 전달하는 식으로 진행된다. 즉, 카카오에서 준 정보는 모바일이 받고 그 정보를 모바일에서 서버로 던져주면 서버가 받아서 DB에 저장하는 방식으로 이뤄져 있는 것이다.
자세한건 여기를 참고 바란다.
https://aodtns.tistory.com/109
나의 경우는 사실 플러터를 주력으로 할 것이 아니기도 하고, 서버에서 로그인을 처리하는 기능을 익히고 싶어서 1의 방법대로 진행하기로 하였다.
그럼 프론트단에서는 무엇을 해야 할까? 우선 로그인 기능을 구현하기 위해 프론트 - 카카오 서버 - 구글 서버가 어떻게 동작해야 하는지를 한 번 더 정리하고 들어가자.
프론트에서 토큰을 받았는데, 이를 굳이 백엔드에서 요청하는 이유는, 보안상의 이유 로 secritkey를 가지고 요청을 해야 하기 때문이다.
즉, 우리가 가장 먼저 프론트에서 해야 할일은 로그인을 통해 토큰을 요청하는 것이다.