ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [React.js] 리액트js 구글 로그인 구현하기
    Web Programming/React.js 2020. 7. 16. 05:10

    사용할 모듈

    - https://www.npmjs.com/package/react-google-login

     

    react-google-login

    A Google Login Component for React

    www.npmjs.com

    - https://github.com/anthonyjgrove/react-google-login

    시작하기

    우리는 사이트를 개발할 때에는 대부분 사용자의 정보가 필요합니다. 글을 쓸 때나 댓글을 달 때와 같은 기본적인 기능 뿐만 아니라 사용자의 입맛에 맞게끔 구현하는데 있어서 사용자 정보는 필수가 되었습니다.

    사용자는 귀찮음을 싫어하기 때문에 유명한 사이트가 아니면 그 사이트에 회원가입을 꺼려합니다. 그렇기에 우리는 유명한 사이트의 기본 유저 데이터를 이용해서 사용자가 로그인을 이끌게 끔 해야합니다.

     

    이번 포스팅은 수많은 사람들이 하나쯤은 있는 구글 계정을 이용해서 우리가 제작하는 사이트의 이용을 이끌도록 소셜로그인을 구현해보도록 하겠습니다.

     

    모듈 설치하기

    // yarn
    yarn add react-google-login
    
    // npm
    npm install react-google-login

    만들어 둔 React.js프로젝트에 react-google-login을 설치해줍니다.

    준비완료!

     

    컴포넌트 구현하기

    // GoogleButton.js
    
    import React from 'react';
    import GoogleLogin from 'react-google-login';
    
    const clientId = "OAuth Web Client ID";
    
    export default function GoogleButton({ onSocial }){
        const onSuccess = async(response) => {
        	console.log(response);
        
            const { googleId, profileObj : { email, name } } = response;
            
            await onSocial({
                socialId : googleId,
                socialType : 'google',
                email,
                nickname : name
            });
        }
    
        const onFailure = (error) => {
            console.log(error);
        }
    
        return(
            <div>
                <GoogleLogin
                    clientId={clientId}
                    responseType={"id_token"}
                    onSuccess={onSuccess}
                    onFailure={onFailure}/>
            </div>
        )
    }

    프로젝트에 GoogleButton.js파일을 만들어 준 후, 이와 같이 작성합니다. onSocial구글로그인이 성공하게 되면 받은 데이터를 이용해 웹사이트 서버와 연결하는 함수입니다. 

    웹사이트 서버 로그인 함수가 구현되어 있지 않다면 onSocial을 지우고 console.log(response);를 이용해 데이터를 확인하시면 됩니다.

     

    GoogleLogin 기본 파라미터 알아보기

    - clientId : OAuth Client ID입니다. 설정 및 ClientID를 구하는 방법은 밑에 상세히 알아보도록 합시다.

    - onSuccess : 구글 로그인을 성공했을 때 response를 받아오게 됩니다.

    - onFailure : 구글 로그인을 실패했을 때 error object를 받아오게 됩니다.

    - responseType : 구글 로그인을 성공할 때 어떤 response를 받아올지 결정합니다. 자세한 responseType은 github에서 확인할 수 있습니다.

     

    클라우드 구글 플랫폼에서 OAuth설정하기 (clientID 얻기)

    접속 : console.developers.google.com/?hl=ko

     

    Google Cloud Platform

    하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

    accounts.google.com

    구글 로그인 후 접속해줍니다.

     

    초기 화면

     

    프로젝트 생성

    프로젝트가 없으면 만들어줍니다. 저는 프로젝트 이름을 'Google Login'로 만들어준 상태이기에 밑에 프로젝트가 있지만 만든 적이 없으신분은 없으실 겁니다.

     

    프로젝트 생성화면

    이름은 마음대로 작성하신 후 만들기 버튼 클릭!

    사용자 인증 정보화면으로

    사용자 인증 정보 탭으로 이동합니다.

    사용자 인증 정보 만들기 클릭합니다.

    OAuth 클라이언트 ID 클릭합니다.

    애플리케이션 유형 -> 웹 애플리케이션 클릭합니다.

    이름은 마음껏 작성해준 후 URI 추가 버튼 클릭

    URI를 작성해줍니다. 이때 개발서버를 등록하고 싶을 경우 http://localhost:포트넘버 로 입력해주시면 됩니다.

    입력이 완료되었으면 하단에 있는 만들기 버튼을 눌러주세요.

     

    클라이언트 ID가 만들어진 모습

    클라이언트 ID가 만들어진 것을 확인할 수 있습니다!

    클라이언트 ID를 복사해 clientID에 복사 붙여넣기를 하시면 됩니다.

     

    마무리

    우리는 사이트를 개발할 때 '거의' 필수로 사용되는 소셜로그인 중 구글로그인을 이용해 개발해보았습니다. 잘 만들어진 모듈과 간단한 구글의 설정으로 포스팅이 길어지지 않았습니다.

    좀 더 디테일한 포스팅(특히 설정부분)이 없어 과정을 모두 담았으며 여러분들께 도움이 되면 좋겠습니다. 감사합니다!

    'Web Programming > React.js' 카테고리의 다른 글

    [React.js] Next.js + Serverless 구축하기  (0) 2020.07.27

    댓글

Copyright 2020. Alpox(양민열)