Firebaseのログイン機能の選び方
Firebase のログイン機能の選び方
Firebase がサポートする機能にユーザー認証機能があります。要はログイン機能です。会員制のサイトなど、限定した人のみに公開するような Web サイトを作成した場合に必要になります。
当然ですが、ログイン機能をサポートするにはユーザー情報を管理する必要があります。そのためには、サーバー側にデータベースが必要になります。また、多くの場合データベースにアクセスするための処理をバックエンドに作る必要があります。 この機能をゼロから作るのは結構手間がかかりますし、ユーザー情報特にパスワードの管理や更新、忘れた場合のリセットなどを考えると結構面倒な実装になります。
Firebase は、基本的なユーザー認証(ログイン)機能を予め準備してサポートしています。これを利用すれば誰でも簡単にログイン機能をあなたの Web サービスに組み込む事ができます。
Firebase がサポートしているユーザー認証機能
Firebase は予めユーザー認証に必要な多くの機能をサポートしています。
- E-Mail とパスワードによるログイン(一番基本的な機能)
- E-Mail とパスワードによるユーザー登録機能
- E-Mail アドレスの所有を確認するメールを発送する機能及び確認
- パスワードのリセットの為のメール発送
他にもありますがほぼ必要な機能はサポートされていて、ユーザー管理も Firebase がやってくれます。
Firebase の E-mail アドレス以外の認証機能
Firebase では、E-mail アドレスとパスワード以外にも沢山の認証サービスをサポートしています。
- Email アドレスとパスワード
- 携帯の電話番号
- Play Games
- Game Center
- GitHub
- Yahoo
- Microsoft
- Apple などメジャーなサービスのログイン情報を基にした認証もできるようになっています。
Firebase のどの認証を提供するか?
これだけ認証方法があるとどれをサポートすればよいか迷いますよね? 全部サポートするというのもありだと思いますが、既に Firebase でサポートしていると言っても手間がかかります。 お勧めはまずは「E-Mail とパスワード」による基本的なログインです。
実はこれは経験から来るものと、実際に利用者から伺ったご意見からの見解です。
Google をはじめとする、メジャーなサービスによる認証は多くの人が不安に思うことが多いようです。不安というのは、Google などのメジャーなサービスに登録している情報、パスワードなどが漏れたりしないのかという心配です。 特に、ビジネスを立ち上げたばかりの方が提供するサービスでは「大丈夫?」という不安が多いようです。実際は認証できたかどうかの情報をもらっているだけで、個人情報が漏れたりするリスクは殆どないのですが、利用者からすると不安なようです。
そうした不安がなければ、Google などの認証が使えればパスワードをサービスごとに設定する必要もなく便利なのですが、知らないサービスに登録する場合は不安に感じるというのが実情の様です。
実際に私自身が提供していたサービスでは Google と Email の認証をサポートしていましたが、Google のアカウントでの登録は、圧倒的に数が少ないという結果でした。
従ってお勧めは、E-Mail アドレスとパスワードを基本にするのが良いようです。必要に応じてメジャーサービスのオプションを 1 つか2つで十分だと思います。
Firebase で認証につかう E-Mail アドレスの確認は必要か?
これも迷うところの一つですよね? できればした方が無難です。 実際は、E-Mail アドレスの利用の仕方によります。あなた自身が登録された E-Mail アドレスにお知らせなどを含めてメッセージを送る場合は確認した方が無難です。これは、なりすましで登録する人がいた場合、登録者以外の本来の E-Mail アドレスの所有者にメッセージを送る可能性があるからです。 登録していない所からメールが届くと余り印象は良くないものです。
しかし、単にログインの目的ならば必ずしも確認はいらないという考え方もできます。実は、登録する「確率」を考えると一つでも入力情報や登録の手続きが増えると登録をやめてしまう人が多くなって、登録をあきらめてしまう人が結構いるからです。
私の場合は出来るだけ確認のメールを送って所有権を確認するケースが多いです。
Firebase の認証機能を使ってもやる事は意外に多い!
このように、Firebase が予めいろいろなログイン機能にサポートに必要な物を用意していても、実際に Web サービスや Web アプリを開発する場合は、考えたりやる事は沢山あります。 実際の Web サービスや Web アプリの利用者の事を考えてその機能に集中した方が良い物が作れます。そういう意味では、ユーザー認証(ログイン)の機能自体は Firebase に任せてしまった方が、確実で手間も省けます!