ログイン機能の実装方法はいくつかあります。 Djangoを使えば、10分程度である程度見栄えの良い、ログインパネルが実装できます。 Laravel開発の場合、LaravelUIの実装に慣れていれば、そちらでも構わないかと思います。
Firebaseを利用するメリットは、手持ちのインフラが定まっていない場合でも無料でFirebaseのデータベースを利用し、ログイン機能を作成中のプロジェクトに導入できる点でしょうか?
色々な使い道があるかと思いますが、今回はReactにログイン認証を付ける事を想定しています。
ひとまず、FIrebaseで試したい方は参考にしてください。
仕様について
- Firebase Auth を React に組み込み、ログイン機能を追加する
- Context を利⽤したアプリケーション全体での状態管理を行う
React のプロジェクトを作成
事前準備1として、Reactのプロジェクトを作成します。
$ npx create-react-app sample-firebase --template typescript
Firebase にログイン / プロジェクトの作成
事前準備2として、Firebaseにログインし、プロジェクトの作成を行います。
-
プロジェクトを作成
Firebase https://firebase.google.com/?hl=ja
FIrebaseのトップページの「使ってみる」からプロジェクトを作成で進み、プロジェクトの名前を付けます。
- Googleアナリティクスの設定が有効であるかをチェックする。有効であるのを確認し続行。
-
Googleアナリティクスのアカウントに表示されたユーザーを選択し、「プロジェクトを作成」。
しばらく経つと、プロジェクトが作成されます。
- 「開始するにはアプリを追加してください」はWebである```>```を選択します。
-
アプリのニックネームを任意で割り当て「登録」。
次の画面でAPIキーが発行されますので、コピーしておきます。
const firebaseConfig = { apiKey: "APIキー", authDomain: "**********614fa.firebaseapp.com", projectId: "**********614fa", storageBucket: "**********614fa.appspot.com", messagingSenderId: "**********", appId: "**********", measurementId: "G-**********" };
-
Reactのプロジェクトディレクトリに`.env`のファイルを作成し、コピー(メモ)した キーをそれぞれ`REACT_APP_`の後に入れてください。
REACT_APP_APIKEY= REACT_APP_AUTHDOMAIN= REACT_APP_DATABASEURL= REACT_APP_PROJECT_ID= REACT_APP_STORAGE_BUCKET= REACT_APP_MESSAGING_SENDER_ID= REACT_APP_APP_ID= REACT_APP_MEASUREMENT_ID=
ここまでのアプリを登録する流れを整理します
- Firebase プロジェクトを作成したら、そのプロジェクトにウェブアプリを登録できます。
- Firebase コンソールの [プロジェクトの概要] ページの中央にあるウェブアイコン>をクリッ クして設定ワークフローを起動します。
- すでに Firebase プロジェクトにアプリを追加している場合は、[アプリを追加] をクリックするとプラットフォームのオプションが表⽰されます。
- アプリのニックネームを⼊⼒します。 このニックネームは内部⽤の簡易 ID であり、Firebase コンソールでのみ表⽰されます。 [アプリを登録] をクリックします。
FireBaseを有効化
こちらのマニュアルを参考にメール/パスワードのログインを有効化してください。
https://firebase.google.com/docs/auth/web/password-auth?hl=ja- Firebase を JavaScript プロジェクトに追加します。
- アプリを Firebase プロジェクトに接続していない場合は、Firebase コンソールで接続します。
- メールアドレスとパスワードによるログインを有効にします。
- Firebase コンソールで [Authentication] セクションを開きます。
- [Sign-in method] タブで [メール / パスワード] を有効にして、[保存] をクリックします。
index.jsを成形します
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render(
,
document.getElementById('root')
);
App.jsを成形します
function App() {
return (
Hello,World
);
}
export default App;
追加でインストールします。
MUI
npm install @mui/material @emotion/react @emotion/styled
React Router
npm install react-router-dom
Firebase
npm install firebase
Firebase UI
npm install firebaseui
サーバーを起動します
$ npm run start
Reactが立ち上がるのを確認した後に、
http://localhost:3000/login
でアクセスし、会員登録とログインをしてください。
ログインが出来れば「/」にアクセスします。