[Swift]GitHub Signin

RYEOL·2024년 2월 14일

Swift

목록 보기
7/14
post-thumbnail

Github Signin With Spring Oauth

GitHub Signin 기본 세팅

  • GitHub Oauth App 만들기

    이름 정하고 Authorization callback URL은 앱이름://login 으로 설정해주면 된다
  • Info.plist 추가하기

    URL Scheme에 GitHub Oauth App 이름을 넣어준다

작동 방식

그림으로 설명하면 좋겠지만 그림을 잘 못그려서 글로 대신..

  • 앱에서 로그인 요청

    말그대로 앱에서 로그인을 요청한다 url은 github 문서를 보면 나오는데 client_idscope가 필요하다
    client_id는 Github Oauth App에 들어가면 확인 할 수 있다.
    scope는 이제 허용 범위? 요청 정보? user, repo 같은 것들이 있다 공식문서를 한번 확인해보는 거 추천!
  • 로그인 후 code 값 찾기

    code는 로그인 후 콜백 하는 url에 앱이름://?code=~이런식으로 들어있는데 code= 뒤에 부분을 저장하고 사용하면 된다
  • code로 Oauth Server에 요청 보내기

    github Oauth는 서버에 프론트가 code값을 parameter로 보내면 인증이 가능하다.
    인증이 성공적이면 access, refreshToken을 발급 받을 수 있다. 해당 토큰을 keyChain에 저장하고 사용하는 코드까지 작성하면 끝

Flow에 따른 코드

  • 앱에서 로그인 요청

    Oauth App설정을 잘해뒀으면 이것만 요청해도 로그인 이후 앱으로 돌아오는 flow까지 확인이가능
  • 로그인 후 code 값 찾기

    ScenceDelegate.swift
    이런식으로 URL에서 code만 가저올 수 있다. 코드 작동 방식은 아마 로그인 flow때 url을 보면 단번에 이해할 수 있을 것 같다
  • code로 Oauth Server에 요청 보내기

    나와 같은 경우는 코드를 따로 API 요청 코드를 분리해서해당 부분에서 code값을 알고 서버에 요청할때 인자로 전달
    성공하면 access, refreshToken을 받아서 keychain에 저장해두고 사용

후기

생각보다 로그인과정이 너무 간단해서 파이어베이스에 의존하는 것 보다 Oauth 서버를 만들어줄 백엔드가 있다면 앞으로 파이어베이스를 사용하는 일은 딱히 없을 것 같다.

profile
Flutter, Swift 모바일 개발자의 스타트업에서 살아남기

0개의 댓글