[TIL] 25.01.12 SUN

GDORI·2025년 1월 12일
0

TIL

목록 보기
160/184
post-thumbnail


<출처 : 코드스테이츠>

Git OAuth 인증

친구와 진행중인 프로젝트는 Git OAuth를 이용하여 로그인하는 방식으로 채택하였다.
위 이미지는 OAuth 인증의 흐름이다.
깃허브에 내 앱을 등록하여 클라이언트 ID와 클라이언트 시크릿을 발급받고 이를 이용하여 아래와 같이 로그인을 시도하면 내가 지정한 리디렉션 URL로 연결된다.

https://github.com/login/oauth/authorize?client_id=<CLIENT_ID>&state=<random_string>

필수 파라미터:

  • client_id: 애플리케이션이 GitHub에서 발급받은 클라이언트 ID.
  • state: CSRF 공격 방지를 위한 임의의 문자열.

권장 파라미터:

  • redirect_uri: 권한 부여 후 사용자를 보낼 애플리케이션의 URL
  • state: CSRF 공격 방지를 위한 임의의 문자열.

참고 - Github 공식문서

GitHub 로그인 화면에서 사용자가 계정을 선택하고 필요한 권한을 승인하면 Github는 설정된 rediect_uri로 사용자를 리다이렉트 하며, authorization_code를 쿼리 파라미터로 반환한다.

https://yourapp.com/<내가 지정한 uri>?code=AUTHORIZATION_CODE

서버는 해당 컨트롤러에서 서비스 레이어를 통해 액세스 토큰을 요청한다.

POST https://github.com/login/oauth/access_token
Content-Type: application/json
{
  "client_id": "<발급받은 CLIENT_ID>",
  "client_secret": "<발급받은 CLIENT_SECRET>",
  "code": "<쿼리로 날라온 AUTHORIZATION_CODE>",
  "redirect_uri": "<지정한 REDIRECT_URI>",
  "state": "<random_string>"
}

요청이 성공하면 액세스 토큰이 반환되고 이를 통해 사용자 정보를 요청할 수 있다.

GET https://api.github.com/user
Authorization: Bearer <ACCESS_TOKEN>
profile
하루 최소 1시간이라도 공부하자..

0개의 댓글

관련 채용 정보