재우니의 블로그

 

해당 글 내용의 변역이 다소 이상하다고 생각이 드시면 원문의 영문 블로그 사이트를 방문해 주시기 바랍니다.

 

medium.com/firebase-developers/how-to-setup-firebase-authentication-with-react-in-5-minutes-maybe-10-bb8bb53e8834

 

How to setup Firebase Authentication with React in 5 minutes (maybe 10)

A quick guide on how you can implement Firebase Authentication easily in a React application

medium.com

 

 

React 를 통해 Firebase 인증 Authentication 만들어 보기

 

 

 

노트! 이 기사는 다음 언어에서도 볼 수 있습니다.

 

 

Firebase 및 React로 빠르게 인증만을 완료 하기 위한 간단한 가이드 위주로 설명되어 있습니다.

 

이 자습서에서는 기본 Google 인증을 적용하는 데 필요한 최소한의 변경만 코딩 하였습니다.

여기서는 몇 가지 오픈 소스 프로젝트를 사용할 예정입니다.

 

 

개발환경설정

 

아래 node.js 최신버전을 설치 해 주세요.

 

Bootstrap 으로 샘플 프로젝트 구성

create-react-app 프로젝트를 부트 스트랩으로 사용할 것 입니다.

터미널에서 아래 명령을 실행하면 설치 완료 됩니다.

 

# bootstrap a new react application
npx create-react-app react-firebase-authentication

# access the project
cd ./react-firebase-authentication

# start project in development mode
npm start

Firebase 설정하기

 

 

Firebase 프로젝트 가 아직 없다면 아래 링크를 통해 가입 및 생성을 하셔야 합니다.

 

creating a Firebase project

 

로그인 - Google 계정

하나의 계정으로 모든 Google 서비스를 Google 계정으로 로그인

accounts.google.com

인증(Authentication) 페이지로 이동합니다.

 

"Sign-in method"탭을 클릭하고 로그인 공급자(sign-in provider) 에서 Google-enabled 했는지 확인합니다.

 

 

Authorized Domain 에 localhost 을 설정합니다.

Authentication 페이지 상단에  “Web Setup” 버튼을 선택합니다.

 

다음과 같은 모달이 표시됩니다.

이것이 firebase 의 환경설정 데이터 입니다.

src/firebaseConfig.js 경로의 파일에 위의 값을 config 의 변수에 복사해서 붙여 넣습니다.

 

const config = {
    apiKey: "***",
    authDomain: "***",
    databaseURL: "***",
    projectId: "***",
    storageBucket: "***",
    messagingSenderId: "***",
};
export default config;

 

이제 NPM을 통해 Firebase 라이브러리와 Higher Order Component 를 설치하겠습니다 .

npm 명령어를 통해 다음 명령을 실행하면 설치됩니다.

npm install --save firebase react-with-firebase-auth

 

Code 시작

 

 

src/App.js 코드에서 component 아래와 같이 4가지 정도의 컴포넌트를 가져오는 구문으로 수정하였습니다.

 

import withFirebaseAuth from 'react-with-firebase-auth'
import * as firebase from 'firebase/app';
import 'firebase/auth';
import firebaseConfig from './firebaseConfig';

 

configuration 을 사용하여 Firebase app 을 초기화 합니다.

 

const firebaseApp = firebase.initializeApp(firebaseConfig);

 

 

지원하려는 공급자(providers )를 설정하고 인증 라이브러리(auth library) 에 액세스합니다.

 

const firebaseAppAuth = firebaseApp.auth();
const providers = {
  googleProvider: new firebase.auth.GoogleAuthProvider(),
};

 

 

withFirebaseAuth HOC 을 사용하여 App 의 컴포넌트를 export 하여 외부에서 접근 가능하도록 합니다.

 

export default withFirebaseAuth({
  providers,
  firebaseAppAuth,
})(App);

 

 

이제 컴포넌트에서 withFirebaseAuth HOC 이 제공하는 속성값들을 접근할 수 있습니다. 

이는 user, signIn 그리고 signOut, error 와 같은 메소드들을 제공해 줍니다.

이를 통해 render 메소드에 이를 추가할 수 있습니다.

 

const {
  user,
  signOut,
  signInWithGoogle,
} = this.props;

 

 

 

사용자에게 sign in (로그인), sign out(로그아웃)을 요청하도록 마크업을 수정합니다.

return (
  <div className="App">
    <header className="App-header">
      <img src={logo} className="App-logo" alt="logo" />
      {
        user 
          ? <p>Hello, {user.displayName}</p>
          : <p>Please sign in.</p>
      }
      {
        user
          ? <button onClick={signOut}>Sign out</button>
          : <button onClick={signInWithGoogle}>Sign in with Google</button>
      }
    </header>
  </div>
);

 

이제 가동시켜서 https://localhost:3000 브라우저를 통해서 아래와 같은 화면을 보실 수 있습니다.

인증되지 않은 상태

 

그런 다음 Google로 로그인 버튼을 클릭하면 Google 로그인 모달을 팝업 할 수 있습니다.

액세스 권한을 부여할 경우, 다음과 같은 내용이 표시됩니다.

 

인증된 상태, 인증되면 본인 이름이 표기될 겁니다.

 

 

페이지를 새로 고침하면, Firebase가 자격 증명(credentials)이 여전히 유효한 것으로 간주하여, 사용자가 로그인 상태를  지속적으로 유지합니다.

끝~

이 작은 튜토리얼을 즐기 셨기를 바랍니다. 나는 할 일이 전혀없고 멋진 것을 나누고 싶었던 밤에 그것을 만들었습니다.

제 목표는 아름다운 코드를 만들거나 모범 사례를 통해 최상의 코드 방식으로 구현 방법을 보여주는 것이 아닌, 얼마나 쉽고 빠를 수 있는지 보여주는 것이 었습니다.

 

소스코드는 아래 github 을 통해 다운로드 받을 수 있습니다.

 

https://github.com/armand1m/react-firebase-authentication-medium

 

armand1m/react-firebase-authentication-medium

Resulting source code from "How to setup Firebase Authentication with React in 5 minutes (maybe 10)" - armand1m/react-firebase-authentication-medium

github.com