🙌

個人開発でFirebase使うならGoogle認証が便利でした!!

2023/06/20に公開

はじめに

パスワード認証は、一般的な認証方法の1つですが、ユーザー側や開発者側ともに手間がかかることがあります。その為、パスワード認証以外の方法を採用することも検討されます。

この記事では、パスワード認証以外の方法として、Google認証を採用した場合のメリットを紹介します。

パスワード認証の手間

パスワード認証は、ユーザーがアカウントにサインアップやサインインする際にパスワードを作成・入力する必要があります。
しかし、ユーザー側にとっては複雑なパスワードを作成することや、複数のアカウントごとに異なるパスワードを覚えることが負担となる場合があります。

また、開発者側にとってもパスワード認証の実装に手間がかかります。
(特に個人開発となると、認証関連に時間を使いたくはない為。)

具体的な開発者の手間は以下の通りです:

  • Eメールとパスワードを用いたサインアップ画面の実装
  • Eメールとパスワードを用いたサインイン画面の実装
  • パスワードを忘れた場合の画面の実装

(全てにおいて、バリデーションの実装も必要)

Google認証のメリット

Google認証を使用することで、利用者側と開発者側のパスワード認証に関わる手間を軽減することができます。

具体的な利点は以下の通りです:

  • ユーザーはGoogleアカウントでサインアップやサインインができるため、新たなパスワードを作成する手間が省けます。
  • ユーザーはGoogleの二段階認証の仕組みを利用することができます。
  • セキュリティの面でも、Google側が管理するため、開発者側でパスワードの管理をする必要がありません。
  • 開発者は、途中からパスワード認証を採用することも可能です。(ログアウトの処理はパスワード認証でも共通で利用可能)
  • 開発者は、Google認証の一つの画面を実装するだけで良い。

Google認証の実装

( TypeScript と React での実装を想定しています。)

Google認証を使ったログインの実装

const signInWithGoogle = useCallback(async () => {
  try {
    const auth = getAuth()
    await signInWithPopup(auth, provider)
    return { success: true, message: '' }
  } catch (e) {
    if (e instanceof FirebaseError) {
      console.log(e)
    }
    return { success: false, message: 'エラーが発生しました' }
  }
}, [])

ログアウトの実装

const signOut = useCallback(async () => {
  try {
    const auth = getAuth()
    await firebaseSignOut(auth)
    return { success: true, message: '' }
  } catch (e) {
    if (e instanceof FirebaseError) {
      console.log(e)
    }
    return { success: false, message: 'エラーが発生しました' }
  }
}, [])

まとめ

上記の通り、Google認証を採用することで、利用者側と開発者側のパスワード認証に関わる手間を軽減することができます。
個人開発でFirebaseを使うなら、Google認証を採用することをおすすめします!!

参考文献

エックスポイントワン技術ブログ

Discussion