Bubbleの利用者認証について、確認していた時のまとめとなります。
簡単なサービスやプロトタイプには、問題ないですが、高い認証レベルを求められる時には、認証周りでつまづきそうです。
知っておくべきこと
Bubble内の利用者認証用のデータテーブル上では、利用者のパスワード情報を見えないようになっている。
そのため、管理者として、ユーザーのパスワード情報を管理できない。
認証方法
Bubbleの利用者認証には、3つの方法があります。
- Email and Password
- OAuth
- Single Sign On(SSO)
Email and Password
一般的なWEBアプリケーションと同じ認証となります。
メールアドレスとパスワードを使うことで、Bubbleアプリにログインできます。
ただし、メールアドレスとパスワードについては、利用者が登録する必要があります。
OAuth
外部のサービスの認証を利用する仕組みです。
*Bubbleでは、Google、FacebookなどのSocial Loginを利用できるpluginが用意されています。
外部サービスの認証を利用して、ログインする場合、Bubble内データベース・Userに新しく利用者登録がされる。
利用者登録をすることで、パスワードを利用しなくてもログインすることができる。
FacebookやGoogleのアカウントを有していることで、簡単にアカウントを作成できます。
従来のログイン方法と外部認証の併用
Bubbleで開発されたサービスにメールアドレスとパスワードを利用して、ログインしているユーザーで、外部認証を紐付けするときは、紐づけられた後でも、新しいアカウントは作成されない。
外部認証を利用して、アカウント登録している場合、その外部認証に使われているメールアドレスを使う場合、アカウントが登録できない。
外部認証でログイン後、パスワードを更新したい場合は、パスワードリセットフローが必要となる。
Single Sign On(SSO)
Social Loginと同じような、外部サービスを利用したログインもできます。
HTTP GETにて、クライアントIDとリダイレクトURLを外部サービスの認証に送ります。認証が成功すると、認証用のコードを受け取ります。クライアントID、クライアントのシークレットトークン、リダイレクトURL、そして、認証用コードを外部サービスへ送ります。
外部サービスが認証するとアクセストークン、期限、そして、UIDを外部認証が保存します。期限内だと、その外部サービスがBubble Appの認証を代行してくれます。
簡単なサービスやプロトタイプには使えそうです
高い認証レベルを求められると使いにくいですが、そこまでの認証を求められない場合は、全然Bubbleも使えると思います。
ただし、サービスの規模が大きくなる場合は、開発した方が、自由度は高そうです。
【参考記事】
Bubble Docs