본문 바로가기
Backend/Spring Boot

[OAuth2] 03. GitHub 로그인 구현하기(Spring boot) (1) 사전 작업

by 김파치 2023. 10. 16.

다른 프로젝트를 진행하면서 이번에는 깃허브 api를 사용해서 OAuth2 로그인을 구현하게 되었다!

 

springboot 백엔드 관련해서 github 로그인 과정이 별로 없는 것 같아서 아카이브 당첨!  \(@^0^@)/

 

이번에는 아래 블로그들을 참고해서 구현해보았다아

 

감샴댜~!~! (꾸벅)

 

 

 

Spring Security + JWT를 이용한 자체 Login & OAuth2 Login(구글, 네이버, 카카오) API 구현 (7) - OAuth 2.0 로그

본격적으로, 프로젝트에 사용된 OAuth 2.0 로그인 관련 클래스 코드를 설명드리고자 합니다! 들어가기 전 OAuth 관련 패키지 구조는 다음과 같습니다. OAuth2Service를 생성하기 위해 spring-boot-starter-oauth

ksh-coding.tistory.com

 

 

Github OAuth 로그인 구현하기

OAuth 기능을 구현한 이유? 우리의 서비스에서 직접적으로 회원가입, 로그인 기능을 구현하여 회원 정보를 관리하고 사용하기보다는 이미 인증된 서비스에서 관리하는 회원 정보를 가져와 사용

park-algorithm.tistory.com

 

OAuth 라이브러리를 쓸 수도 있었지만 나는 프로젝트 시간 관계상 그냥 RestTemplate으로 다 해결했다.

 

추후 바꿀까 생각중임...!

 

참고로 github api는 종류가 무진장 많지만... 뭔가.. 뭔가 많이 불친절해서 구현하는데 애먹었다.... 하핳...

 

로그인 구현 후 로그아웃 구현한 것도 올릴건데 로그아웃이 진짜....진짜 너무너무 힘들었다ㅜㅜㅜ 

 

암튼 시작!

 

 

사전 작업

 

먼저 프로필을 누르고 github settings에 들어간다

 

 

 

 

그리고 쭉 내려가서 제일 마지막에 있는 Developer settings를 클릭한다.

 

 

 

그러면 GitHub Apps와 OAuth Apps 두 가지의 옵션이 있는데 나는 GitHub Apps로 선택했다.

 

오른쪽 상단의 New GitHub App을 선택한댜

 

 

 

그럼 비밀번호를 입력하라고 창이 뜨니까 입력해주고

 

App 설정 화면창이 뜬다.

 

 

나는 아래와 같이 설정해주었다.

 

 

 

스크롤을 내리면 callback URL을 입력해주는 곳이 있다.

 

여기에는 github가 로그인이 끝난 후 redirect를 해 줄 url을 입력한다.

 

나는 http://localhost:8000/login/github로 해주었다.

 

 

 

 

쭉 내리면 github app이 어디에 install 될 수 있냐고 묻는다.

 

팀 프로젝트용이기 때문에 Any account로 해주었다!

 

그리고 Create GitHub App 클릭!

 

 

 

그럼 다음과 같은 화면이 뜬댜

 

Client ID는 부여되었고 우리는 Client Secret key가 필요하다.

 

Client secrets 옆의 Generate a new clilent secret 버튼을 눌러 secret key를 발급받는다.

 

 

 

 

발급 받은 아이디와 secret key를 appllication-oauth.properties에 넣어주면 된다.

 

 

 

 

# github
spring.security.oauth2.client.registration.github.client-id=
spring.security.oauth2.client.registration.github.client-secret=
# local
spring.security.oauth2.client.registration.github.redirect-uri=http://localhost:8000/login/github

 

 

 

그럼 사전작업은 끝!