🙌
個人開発でFirebase使うならGoogle認証が便利でした!!
はじめに
パスワード認証は、一般的な認証方法の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