[Flutter] Oauth와 플러터

KoEunseo·2024년 3월 30일
0

flutter

목록 보기
44/45

Oauth 2.0 With Flutter

그동안 프로젝트를 하기 위해 무지성으로 oauth2를 써왔다.
로그인, 회원가입, 뭐 이런 기능들은 기존 서비스가 이미 있다면 또 할 일이 거의 없겠지만...
나는 운(?)이 좋게도 oauth부터 손볼 수 있게 됐다.

플러터 공홈에도 Firebase는 뗄 수 없는 baaaaassss인거같은데 우리 서비스에서도 그걸 사용할 지는 잘 모르겠다. 아마 aws를 쓰지 않을까?? 일단 s3는 쓴다고 들었음.

파이어베이스(그리고 비슷한 서비스들에서도)는 많은 작업을 손쉽게 만들어주기 때문에, 파이어베이스에 의존하는 것은 나에게 큰 도움이 되지 않을 것으로 생각된다. 그래서 이제 실무에서 쓰게 되었으니 이 부분에 대해서 더 잘 이해하고 구현해야겠다는 생각이 들었다.

구현하는 방법 자체는 찾아보면 다 있기도 하고, 이미 해본 것도 있고.

SNS 로그인(카카오 로그인)

내가 진행했던 sns 로그인 구현 과정은 아래와 같다.
1. 카카오 디벨로퍼 페이지에서 내 앱을 등록한다.
1. 유저가 sns 로그인 버튼을 누른다.
2. 이것들은 각 회사에서 서비스를 제공한다.
* 각 회사의 로그인 페이지로 리다이렉트된다.
3. 유저가 리다이렉트된 로그인페이지에서 로그인한다.
4. 인증 정보가 리턴된다.
5. 정보들을 기기, 서버에 연동한다.

인증 방식에는 네이티브 앱, REST API 등 여러 방식이 있다.

REST API: 모든 플랫폼에서 사용 가능하다.(범용성)

  1. 사용자의 로그인 요청
  2. 내 서비스의 카카오 로그인 요청
  3. 카카오 로그인 페이지 제공
  4. 유저의 인증정보 입력
  5. Authorization Code를 발급해 리다이렉트 url으로서 전달
  6. Authorization Code를 가지고 카카오에 Access Token 요청
  7. 카카오로부터 Access Token 발급받는다.
  8. 로그인 성공

네이티브 앱: 안드로이드, IOS에서 사용 가능하다.

  1. 사용자의 로그인 요청
  2. 카카오 로그인 페이지 제공
  3. 유저의 인증정보 입력
  4. 카카오 sdk에 의한 인증과정 진행(카카오가 알아서 한다.)
  5. 카카오로부터 Access Token 발급받는다.
  6. 로그인 성공

내 서비스에서 Access Token 사용

  1. 위 과정에서 얻은 Access Token을 내 서버에 전달한다.
  2. Access Token으로 사용자 맞는지 카카오에 확인
  3. 사용자 데이터를 전달받는다.
  4. 내 서버에 요청해 토큰을 발급받는다.
  5. 유저를 생성한다.
  6. 로그인 처리한다.

결론적으로 RestAPI, 네이티브 앱 방식의 차이점은 Authrization Code 관련 로직이 필요한가에 대한 것이다.
우리 서비스는 웹은 따로 개발이 진행되니 나는 네이티브 앱 방식으로 진행하면 될 것 같다.
이전에 내가 구현했었던 카카오 로그인 방식은 REST API 방식이었다.

카카오로그인 뿐 아니라 애플로그인, 페이스북로그인, 네이버로그인 과정에 대해서도 더 잘 이해하고 구현하는 데 도움이 될 것 같다.
두 방식이 어떻게 다르고 어떤 방식으로 이루어지는지 알았으니, 다음엔 네이티브 앱 키로 로그인 시도를 해봐야겠다.

profile
주니어 플러터 개발자의 고군분투기

0개의 댓글