アカウント登録方法の選定

現在進行系で、SNS系のコミュニケーションアプリを開発しています。

こうしたサービスを作るためには、当然アカウント登録(認証)を実装する必要があります。 今回はFirebase Authentication(+FirebaseUI)で実装することにしました。 あとはそこから、何の認証方式を使うかを決めなければいけません。

ということで今回は、以下の方式を採用しています。

  • メールリンク認証
  • Google認証
  • 匿名認証(ゲストログインとし、機能を制限する)

Firebase Authenticationは2段階認証に対応していません。 そうした理由からメールパスワード認証は除外しました。 メールリンク認証とGoogle認証は外部のサービスを経由することになるので、ある程度のセキュリティを確保できると考えています。

メールリンク認証とGoogle認証を選択した理由は、必要な設定がFirebase Authenticationだけで完結するからです。 Twitter認証は事前審査的なやりとりがつらく(別のサービスでリジェクトされたこともあった)、Facebook認証も管理保守周りが面倒なので除外しました。 ほかもだいたい同様の理由です。 開発だけでなく保守も考える必要があるので、こうした選択となりました。

きっと今後新たなサービスを作る場合でも、それがよほどそのサービスに密接した外部サービスでもない限り、同様の選択になるでしょう。

以上。