Bubbleで管理者向けに代理ログイン機能を実装する方法

Bubbleで管理者向けに代理ログイン機能を実装する方法

  • 2025年9月17日
  • 2025年9月17日
  • Howto

Bubbleでサービスを運営していると、ユーザーから「自分の画面と違う」「操作がうまくいかない」といった問い合わせを受けることがあります。そんなときに役立つのが、管理者がユーザーとして直接ログインできる「代理ログイン機能」です。本記事では、Bubbleのワークフローを活用し、マジックログインリンクを使った安全で効率的な代理ログイン機能の実装方法を詳しく解説します。

1. 代理ログイン機能とは

代理ログイン機能は、管理者が任意のユーザーとしてログインし、そのユーザーの視点でサイトを操作できる仕組みです。サポートや不具合調査、ユーザー体験の確認などに活用できます。

2. 前提条件

  • アプリに「管理者専用ページ」(例:/admin)を用意
  • User データタイプに 管理者かどうかを判別するフィールド(例:isAdmin (yes/no))フィールドを追加し、管理者を区別
  • セキュリティ上、通常ユーザーにはこの機能を見せない

3. ワークフローの流れ

Step 1. Send magic login link

対象ユーザーとしてログインできる、「マジックログインリンク」を生成します。

  • 実際にはメール送信せず、管理者が使うためのURLを取得する形にします。
  • 代理ログインを行いたいユーザーをターゲットに設定

Step 2. Make changes to User

Step 1で作成されるマジックログインリンクは、クライアントサイドでは使用できないため、一度データべースに保存します。
今回は、Userテーブルに”magicLoginLink”というフィールドを作成し、リンクをここに一時的に保存し、のちに参照できるようにしています。

Step 3. Log the user out

管理者自身のアカウントから一旦ログアウトします。

これを行わずに実行した場合、正常にログインできなかったためこのワークフローを配置しています。

Step 4. Open an external website

Step 1で生成したマジックログインリンクを使って、新しいウィンドウまたは同じタブでユーザーとしてログインします。

  • 「Open an external website」のURLに「Step 1 で取得したマジックリンク」を指定

4. 実装ポイント

  • 権限管理が必須
    管理者のユーザー以外にはボタンを非表示にし、ワークフローを実行しないようにする条件を設定してください。
  • 監査ログの記録
    「誰が」「いつ」「どのユーザーに」代理ログインしたかをImpersonationLogというテーブルに記録しておくと安心です。
  • セキュリティ対策
    代理ログインの利用が終わったら isImpersonated を解除する処理を入れると安全です。

5. まとめ

この方法を使うと、管理者ページから任意のユーザーに即ログインできる「代理ログイン機能」を実装できます。

  • マジックログインリンクを生成
  • 管理者をログアウト
  • 対象ユーザーとして再ログイン

サポートや調査に非常に有用ですが、誤用や不正利用を防ぐために必ず管理者権限チェックとログ記録を実装してください。