오늘은 로그인 구현을 위한 로그인 설계 방식과 세팅을 해보려고 한다.
해당 로그인 구현을 위해서는 세가지 방식이 있다.
1. 프론트에 모든 책임을 준다.
2. 프론트 + 백엔드에서 책임을 나눠가진다.
3. 백엔드에 모든 책임을 준다.
나는 백엔드에 모든 책임을 주어 로그인을 구현하는 방식으로 진행해보겠다.
동작 설계
1. 하이퍼링크를 통해 로그인을 진행
2. 외부 로그인 페이지 요청
3. 외부 로그인 페이지 로그인 진행
4. Authorization Server에서 Authorization code 발급
5. Authorization code로 Access token 요청
6. 발급받은 Access token을 통해 Resource Server에 유저 정보 요청 후 획득
7. JWT 발급 (쿠키 방식 발급)
로그인 후에 API 요청이 들어오면 JWT의 인가/인증을 통해 응답이 처리될 것이다.
네이버 로그인
https://developers.naver.com/products/login/api/api.md
네이버 로그인 - INTRO
환영합니다 네이버 로그인의 올바른 적용방법을 알아볼까요? 네이버 로그인을 통해 신규 회원을 늘리고, 기존 회원은 간편하게 로그인하게 하려면 제대로 적용하는 것이 중요합니다! 이에 올바
developers.naver.com
해당 링크에서 Open API 신청을 해주면 된다.
애플리케이션의 이름, 받아올 유저 정보, 우리 서비스의 URL, Redirect URI을 입력하여 등록을 완료한다.
등록이 완료되면 생성되는 Client ID, Client Secret 값을 application.properties에 설정해주면 된다.
구글 로그인
구글 로그인을 구현하기 위해서는 GCP를 이용해야 한다. 아래 강의를 참고하였다.
스프링 OAuth2 클라이언트 JWT 8 : 구글 소셜 로그인 신청
네이버 로그인과 마찬가지로 등록이 완료되면 생성되는 Client ID, Client Secret 값을 application.properties에 설정해주면 된다.
Application.properties 설정
# Registration
- 외부 서비스에서 우리 서비스를 특정하기 위해 등록하는 정보이기 때문에 이용할 외부 서비스 별로 등록이 필수적이다.
client-name, client-id, client-secret, redirect-uri, authorization-grant-type, scope
# Provider
- Provider는 서비스별로 정해진 값이 존재하며, 구글이나 깃허브의 경우에는 내부적으로 데이터를 가지고 있기때문에 따로 설정할 필요가 없다. (하지만 네이버, 카카오와 같은 경우는 필수적이다.)
authorization-uri(로그인 창 주소), token-uri(토큰 발급 서버 주소), user-info-uri (리소스 서버 주소), user-name-attribute (사용자 정보가 담길 key)
Refrence
'Spring > OAuth 2.0' 카테고리의 다른 글
| [Spring] OAuth 2.0 로그인 Refresh Token 도입기 (1) (0) | 2025.02.27 |
|---|---|
| [Spring] OAuth 2.0 개념과 동작 방식 (0) | 2025.02.25 |