概要
外部サイトとの連携認証を簡単につけたいが3つあってよくわからないので比較する。Firebaseが良さそう。
要件
- Facebook, Twitter両方と一つのユーザを紐づけたい
- Facebook, Twitterのアクセストークンもほしい。
- 連携認証なしのメールアドレスでもログインしたい
- 特定の外部サイトだけの連携解除もしたい。
- 無料 (できれば)
- ログイン画面は用意してほしい (できれば)
- SPA (Angular)
- 現在はAWSをメインで使用している
調査結果
(欠点がなければそれ使うだけなので長所とか書く必要ないよね)
Cognito User Pools
(Cognito ID Poolは別物なので注意。そちらは連携認証に対してIAMを振れるものらしい?)
- なんだか設定をごちゃごちゃ聞かれてめんどくさい。
- Twitterがない。
- 複数のSNSに紐付ける際はそれなりに実装が必要そう。
- jsのライブラリがよくわからない。Amplifyって概念もよくわからない。なんでライブラリなのにリージョンがあるのか。
Firebase Authentication
- ログイン画面がない
- FirebaseがAuth以外もできる多機能なものなのでライブラリのインポートがごちゃる
Auth0
- 複数サイトを一人のユーザに連携する場合は有料
(おまけ) hello.js
- 今まで使っていたが、一般ユーザのお手製感があるのでやめる。
- ユーザーテーブルはない。外部サイトの連携認証のみ。
まとめ
項目 | Cognito User Pools | Firebase Authentication | Auth0 | hello.js |
---|---|---|---|---|
料金 | ○ | ○ | × | ○ |
必要な設定・知識の量 | × | △ | ○ | ○ |
ログイン画面 | ○ | × | ○ | × |
単一ユーザ複数認証 | × | ○ | ○ | × |
日本語ドキュメント/情報 | △ | ○ | × | × |
費用が何でも良ければAuth0が便利そうだが、今回はFirebaseで。