【Bubble】既存ユーザーが新しい他のユーザーを追加する方法
ノーコードツール「Bubble」で、既存ユーザーが任意のメールアドレスを入力して新しい他のユーザーを追加する方法を紹介します。
この記事を作成した背景として、Bubbleで新規会員登録処理をする際は通常、Sign the user upを使用しますが、それを使うと自動で現在のユーザーはログアウトされてしまい新規追加したユーザーでログインされてしまうので、管理者ユーザーがWordPressのように管理画面から新しいユーザーを追加したいといった要望には微妙に応えられません。
そこで「Create an account for someone else」と「Assign a temp password to a user」と「Send email」を駆使して実装します。この記事では既存ユーザーが新しい他のユーザーを追加する一例を紹介します!
なお、ノーコードBubbleの概要については以下の記事で解説しています。
【公認代理店が解説】ノーコードツールBubbleとは?使い方やデメリット、料金を解説
実装イメージ
管理画面の新規ユーザー追加ページで、管理者ユーザーはメールアドレスを入力してボタンをクリックします。
ボタンクリックすると入力したメールアドレスで新規ユーザーを作成し、直後パスワードを再発行し、管理者ユーザーのメールアドレス宛に該当ユーザーのメールアドレスとパスワードを送付するといった想定です。
※理想を言えば、管理者ユーザーがメールアドレスだけでなくパスワードも入力できるWordPressのような仕様がベストですがそれを実現する実装は現在検証中なのでまた完成したら記事化したいと思います。
実装手順
以下の手順で実装します。
- 新規ユーザー登録ページを作成する
- 登録ボタンをクリックした時のワークフローを設定する
- ログイン情報を該当者に教える
新規ユーザー登録ページを作成する
まずは新規ユーザーを登録するためのページを作成します。
上の添付画像のように、メールアドレス入力欄と登録ボタンが最低限必要です。
登録ボタンをクリックした時のワークフローを設定する
「新規ユーザーを追加」ボタンをクリックした時のワークフローを設定します。ワークフロー全体像は以下です。
まず、Step1でCreate an account for someone elseを使い、入力したメールアドレスの値で新規ユーザーを作成します。Step2ではReset relevant inputsでメールアドレス入力欄を空にします。
Step1でEmailだけでなくPasswordもInput入力値で設定できたら良かったんですが、それができないのでStep3とStep4が必要になりました。Create an account for someone elseで作成したユーザーのパスワードは誰も閲覧できないのです。そのため、Create an account for someone elseを使う時は、該当メールアドレスにパスワード再発行リンクを送付して新規ユーザー自身に新しいパスワードを決めてもらうといった流れで運用している開発者の方が多いとのこと。
次にStep3で、Assign a temp password to a user(一時的なパスワードをユーザーに割り当てる)を使い、Step1で作成したユーザーの現在のパスワードを削除して新しいパスワードを発行します(自動でパスワードが割り当てられます)。
Bubble公式ドキュメントによると、Assign a temp password to a userで発行したパスワードは一時的なパスワードですが有効期限はないため、ユーザーによるパスワードリセット処理をしなければそのパスワードでログインし続けられるようです。
最後にStep4でSend emailを用い、Step3で生成したパスワードを管理者ユーザーのメールアドレス宛に送付します。
メール本文は、管理者ユーザーがコピペでそのまま該当のユーザーへログイン情報を共有できるような内容にします。Step3で発行したパスワードはResult of step 3(Assign a temp password…)で取得できます。
ログイン情報を該当者に教える
管理者ユーザーはメールアドレスに送られてきた新規ユーザーのログイン情報を該当者に共有してアプリケーションにログインしてもらうといった運用です。
参考記事
・https://manual.bubble.io/core-resources/actions/account
・https://forum.bubble.io/t/create-account-for-someone-and-assign-temp-password/97282
・https://forum.bubble.io/t/create-user-for-someone-with-email-and-password-without-sending-email-with-temporary-password/301330
懸念としてこの方のYouTube解説でAssign a temp passwordのセキュリティが指摘されていたので実際に運用する際はバックエンドワークフローを使うなど考慮しなければならない模様です。