2024. 1. 30. 09:18ㆍ프로그래밍/웹 개발
사내에서 소셜 로그인을 구현하게 됐다. 그 중에서도 구글을 맡게 됐다(페이스 북 로그인은 비즈니스 계정이 인증된 후에 추가적으로 email을 api로 요청해야 하는데 비즈니스 계정 인증이 안되는 관계로 우선은 보류됐다).
1. google cloud 콘솔에서 계정 생성
https://console.cloud.google.com/
새 프로젝트 생성
2. people api 등록(이거 아니라도 Google Login API를 사용할 수 있는 다른 API라도 추가하면 됨)
3. oauth 동의화면에서 클라이언트 등록(ID, PW 발급) ->이때 발급받은 Client ID로 Google에 API를 호출한다.
Redirect URI 등 추가
4. docs 참고하면서 Javascript 코드 추가
google에서 굉장히 친절하게 docs를 제공하고 있기 때문에 아래 링크를 참고하면서 맞춰서 진행하면 된다.
https://developers.google.com/identity/protocols/oauth2/web-server?hl=ko
단 여기서 주의해야 할 사항은 GIS방식과 Oauth로 인증하는 방식을 헷갈리면 안된다는 것이다.(아래 링크 참조)
https://developers.google.com/identity/gsi/web/guides/overview?hl=ko
두 번째 방식(GIS)은 나와있듯이 Google Identity Services이다. Oauth보다 더 간편하고 보안이 좋은 방법으로 소셜 로그인한 유저의 계정 정보를 불러올 수 있다.
id token은 jwt token으로 디코딩 하게되면 페이로드에 email과 해당 플랫폼에서의 유저의 고유 id를 반환한다.
oauth와 다른 점은 필자가 생각했을 때 다음과 같다.
1. 인증 방식이 다르기 때문에 보안성이 좋다.
2. Access Token을 가져오지 않는다.
즉 Access token으로 Google AP를 호출하기 위해서는 Oauth방식을 통해 access token을 발급받아야 하고 단순히 사용자의 간단한 정보만 필요하다면 GIS 방식으로 훨씬 쉽게 구현할 수 있다.
필자도 현재 필요한 정보는 모두 GIS에 담겨 있었지만 추후 확장성을 위해 access token을 발급받는 방식으로 구현했다.
'프로그래밍 > 웹 개발' 카테고리의 다른 글
Apache Jmeter "$JAVA_HOME/bin/java" $ARGS $JVM_ARGS $JMETER_OPTS -jar "$PRGDIR/ApacheJMeter.jar" "$@" 해결 (0) | 2024.04.12 |
---|---|
로컬 서버에 CI/CD 적용하기 (Feat : ssh: handshake failed 해결) (1) | 2024.02.27 |
[Express] 어플리케이션 레벨 미들웨어와 라우터 레벨 미들웨어 (0) | 2023.10.29 |
Spring Boot 서버를 AWS에 배포하기(프리 티어/무료) (2) | 2023.10.23 |
Ubuntu Linux Server에서 apache Tomcat을 이용해 웹 띄우기 (0) | 2023.10.16 |