쌩로그
OAuth 2.0 애플리케이션 등록(구글, 카카오) 본문
목록
- 포스팅 개요
- 본론
2-1. 구글
2-2. 카카오 - 요약
1. 포스팅 개요
OAuth 2.0 애플리케이션 등록 과정에 대한 포스팅이다.
참고로 네이버는 까다롭다는 말을 들어서 일부러 안 했다.
2. 본론
2-1. 구글
먼저 구글부터 보자
구글 OAuth 연결 링크에 들어간다.
프로젝트를 만들어준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/b60e3f2b-9cdf-4ccc-8a2f-64cb4cf402b2/image.png)
프로젝트 이름을 적고, 만들어준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/6b25ed66-6d59-494c-ad57-94b1d8706ae9/image.png)
그러면 위에 다음과 같이 프로젝트 이름이 나올 것이다.
클릭!
![](https://velog.velcdn.com/images/tjdtn4484/post/a65891d7-be10-4259-b76c-992b1fe54138/image.png)
프로젝트 선택 창이 나온다.
생성된 프로젝트를 클릭한다.
![](https://velog.velcdn.com/images/tjdtn4484/post/fd587f4c-a1d5-46e5-ad7f-44a497c03800/image.png)
OAuth 동의 화면에 들어간다.
![](https://velog.velcdn.com/images/tjdtn4484/post/f30f9359-ee55-4205-8f02-cadfc62559a7/image.png)
외부를 선택하고 만들어준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/7c1f22d8-0132-437a-a89c-dbe22e5ce597/image.png)
앱이름과 본인의 이메일을 넣어준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/7aafea60-1a6c-4c38-921d-6625c3e38826/image.png)
그리고 최 하단에 역시 본인의 이메일을 적어준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/c2fb36fd-2417-4b90-b7ca-b32b323d7a25/image.png)
저장 후 계속
![](https://velog.velcdn.com/images/tjdtn4484/post/24bb0b0f-9699-40dd-85ed-db8744926139/image.png)
테스트 사용자는 등록해본적이 없다.
그러므로 나는 저장 후 계속
을 눌렀다. 그럼 완료가 진행된다.
![](https://velog.velcdn.com/images/tjdtn4484/post/6a6401c6-ce71-4809-bae9-8e081dedc239/image.png)
짠!
![](https://velog.velcdn.com/images/tjdtn4484/post/1eed42a0-233e-41dd-ba72-f55096ff9cd4/image.png)
이제 사용자 인증 정보로 들어가
![](https://velog.velcdn.com/images/tjdtn4484/post/06933ad9-c2b2-422a-97b3-0d36d6be09c5/image.png)
사용자 인증 정보 만들기를 선택한다.
![](https://velog.velcdn.com/images/tjdtn4484/post/6ae20cf5-4c6f-425d-b915-2b368bd0cea5/image.png)
OAuth 클라이언트 ID를 선택해준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/2640bcbd-f985-410e-9391-a430262dca99/image.png)
애플리케이션 이름을 만들어준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/fdc56780-a1f5-4e60-bd09-8b050af9751e/image.png)
이제 리디렉션 URI를 추가해준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/cf95ebdf-9efb-4dce-9fbf-249ef535d2cc/image.png)
이게 정말 중요하다.
OAuth 로그인시 각 벤더사에 요청을 보낼 때 여러 정보를 함께 넘겨주는데,
이 리디렉션 URI를 통해서 각 벤더사에서 로그인 요청이 알맞은 요청인지 아닌지를 판별하는 하나의 기준값이 되기 때문에, 이 URI가 정말 중요하다.
정말 말하고자 싶은 것은 다음과 같다.
착각하지 말자는 것
무슨 말이냐....
리디렉션이라는 단어때문에 로그인 이후에 해당 URI로 리다이렉트되는 URI로 생각할 수 도 있을 것 같지만,(아니라면 정말 다행이다.. 내가 그랬다..)
이건 진짜..진짜...ㄹㅇ 찐으로 착각한 것이다.
그런 용도가 절대! Never! 아니다.
그냥 인증 정보 중에 하나란 것을 반드시 명심하자!!
10개월이 지난 시점 이 글은 병맛이다... 내가 완전 잘 못 쓴글이다.
리다이렉트 url의 쓰임새는 당연히 있다.
그 용도가 무엇인지 알려면, 여기를 참고하길 바란다.
여하튼 승인된 리디렉션 URI를 적어주면된다.
(localhost:8080도 괜찮고, 프론트와 얘기해서 잘 맞춰면된다.)
(우린 아예 백에서 했다.)
프로젝트URI/login/oauth2/code/google
과 같이 주면된다.
스프링 공식문서에 가보면,프로젝트URI/login/oauth2/code/google
이 값이 국룰이다.
스프링에서는 구글, 페이스북을 지원하는데,
다른 벤더사도 이와 같이해서 커스터마이징 해주면 된다.
![](https://velog.velcdn.com/images/tjdtn4484/post/0025a00e-61be-4eb3-a0a5-1f8c69277a65/image.png)
완료를 하면, 다음과 같은 키가 나온다.
![](https://velog.velcdn.com/images/tjdtn4484/post/772b4d85-baa5-41f9-a773-bcc23cf38fd2/image.png)
해당 값들을 통해서 OAuth 로그인시 각 벤더사에 정보들을 주고,
등록된 애플리케이션이 맞는지 아닌지 판별해서 로그인을 허용하거나, 거부한다.
2-2. 카카오
이제 카카오를 보자.
카카오 OAuth 연결 링크에 들어간다.
카카오 로그인을 하고, 상단의 내 애플리케이션에 들어간다.
![](https://velog.velcdn.com/images/tjdtn4484/post/d9688f01-261d-4203-8acd-298386d12ed1/image.png)
애플리케이션을 만든다.
각각의 항목에 필요한 부분을 넣는다.
![](https://velog.velcdn.com/images/tjdtn4484/post/f31099c6-2c4e-4b2f-b418-37de12321ab3/image.png)
그러면 REST API키가 생성되는데,
이 키가 구글 OAuth 로그인의 마지막에 생성된 키의 역할을 하는 값들이다.
잘 복사해놓도록 한다.
![](https://velog.velcdn.com/images/tjdtn4484/post/2e869948-75f9-44f0-8232-179c2785d462/image.png)
플랫폼을 설정한다.
![](https://velog.velcdn.com/images/tjdtn4484/post/05fdbe5b-fb9d-4c94-b318-86115e6b775c/image.png)
프로젝트 상황에 맞는 값을 넣어주면 된다.
![](https://velog.velcdn.com/images/tjdtn4484/post/f642f72e-c6b0-4eee-bb13-70c9c88db03c/image.png)
이제 사이드 메뉴에서 카카오 로그인을 선택한다.
![](https://velog.velcdn.com/images/tjdtn4484/post/90543d5e-bf8e-4fab-99f9-600ae4f29499/image.png)
OFF된 활성화 상태를 ON으로 변경해준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/a7231535-28c2-49f7-9d12-7029e291c232/image.png)
카카오 로그인 활성화를 당연히 해준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/389128a2-91c3-44b3-b478-158eb3a6c08a/image.png)
Redirect URI를 등록한다.
![](https://velog.velcdn.com/images/tjdtn4484/post/58236d56-d1cc-467d-be89-6b1ac5b0dfb8/image.png)
구글에서 했던 것과 비슷하게프로젝트URI/login/oauth2/code/kakao
로 값을 준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/6beccdac-5cce-4ce8-93d0-99e6cd3c8b0b/image.png)
(쓰읍..)
다시 말하지만,,
절대 로그인 성공 후 리다이렉트 되는 URI가 아니다.
동의항목으로 간다.
![](https://velog.velcdn.com/images/tjdtn4484/post/369fd0a6-c1d8-4c7f-ac10-d0762fa413a8/image.png)
프로젝트 상황에 맞게 적절히 동의항목을 체크해준다.
![](https://velog.velcdn.com/images/tjdtn4484/post/ad1b5f6c-e0d8-4179-a5ad-7691fde9a0b9/image.png)
나는 참고로 다음과 같이 했다..
![](https://velog.velcdn.com/images/tjdtn4484/post/d9a36804-03dd-45a9-90fb-b677ba0a66dc/image.png)
이제 보안 탭으로 간다.
![](https://velog.velcdn.com/images/tjdtn4484/post/f1ec9902-c174-4acf-9ba9-9be210774c3a/image.png)
Client Secret 키를 생성해주는데,
구글의 클라이언트 ID 말고, Secret Key가 하나 더 있었던 걸 기억할 것이다.
이 키는 구글의 Secret Key와 같은 역할을 하는 값이다.
카카오에선
REST API 키가 ID,
Client Secret 코드가 Secret Key이다.
![](https://velog.velcdn.com/images/tjdtn4484/post/f6136b6b-9531-4ef0-8eea-8e9e6d20b0f7/image.png)
당연히 생성해준다..
![](https://velog.velcdn.com/images/tjdtn4484/post/35656f95-5235-45f1-81e6-59d85cf5f19d/image.png)
그리고 각 프로젝트에 받은 값을 설정해주면 된다.
3. 요약
개요와 똑같지만,,
오랜만의 과정 포스팅이었다.
결론은
OAuth 2.0 애플리케이션 등록 과정에 대한 포스팅이다.
그리고 명심하자.
리디렉션 URI는 절대 로그인 이후 리다이렉트 되는 URI 가 아니라,
그냥 하나의 인증 정보로 사용한다는 사실을...
- 참고 블로그
https://yelimkim98.tistory.com/45
https://velog.io/@ch4570/OAuth-2.0-JWT-Spring-Security%EB%A1%9C-%ED%9A%8C%EC%9B%90-%EA%B8%B0%EB%8A%A5-%EA%B0%9C%EB%B0%9C%ED%95%98%EA%B8%B0-OAuth-2.0%EC%9D%84-%EC%84%A0%ED%83%9D%ED%95%9C-%EC%9D%B4%EC%9C%A0
https://velog.io/@ch4570/OAuth-2.0-JWT-Spring-Security%EB%A1%9C-%ED%9A%8C%EC%9B%90-%EA%B8%B0%EB%8A%A5-%EA%B0%9C%EB%B0%9C%ED%95%98%EA%B8%B0-%EC%95%B1%EB%93%B1%EB%A1%9D%EA%B3%BC-OAuth-2.0-%EA%B8%B0%EB%8A%A5%EA%B5%AC%ED%98%84
2024년 5월 7일에 redirect-url에 관한 부분 수정. 다른 링크로 확인하도록 함.
'Deploy' 카테고리의 다른 글
CI/CD + 지속적인 전달(Continuous Delivery) (0) | 2023.06.29 |
---|---|
도메인 발급받기_내도메인한국(feat.Easy) (0) | 2023.06.12 |