複数のサイトを運営していて、
「サイト規模が拡大して、機能ごとにサイトを分割したいけど会員情報をどうしよう…」
「複数のサイトでユーザー情報を共有できないの?」
と思ったことはありませんか?
このページでは、ワードプレスサイト間でユーザー情報を共有する方法を伝授します!
ユーザー情報を共有するメリット
ユーザー情報を共有し、状態を自動シンクロできたらユーザー管理は相当楽になります。
さらにログイン状態までシンクロすれば、ユーザー的には巨大なWebサービスを使っているような感覚になります。
- 管理している複数のWordPressサイトに、一括でログインできる。
- 会員制サイトの場合、プロフィールを共通にできる。
- マルチサイト形式にしないためサイト間の独立性が高い。
前提条件
お使いのバージョンやプラグインの相性、すでに適用している他のカスタマイズ等によっては動作しない可能性があります。
筆者が動作確認した際に、同期させた両方のサイトが以下の環境です。
【WordPress】6.7.1
【テーマ:SWELL】2.13.0
使用するプラグイン
ワードプレスの場合、プラグインを使うだけでユーザー情報共有が可能です!
今回ご紹介するプラグインは「WP Remote Users Sync」です。
設定方法
同期したい全てのサイトについて、以下の手順を実行します。
このプラグインでは、例えばA・B・Cの3サイトがある場合、どのサイトからログインしても他2つのサイトもログインした状態になります。
情報共有したいA・B・Cの3サイト全てにこのプラグインをインストールして有効化します。
暗号鍵と署名鍵を設定します。
この2種類の鍵が合致するとユーザー情報を同期するため、セキュリティ観点から重要な設定です。
管理画面から「設定」→「WP Remote Users Sync」→「Security」タブと進みます。
Action Encryption Key(暗号化鍵)とAction Signature Key(署名鍵)を設定します。
どちらもパスワードのようなものでなので、Googleパスワードマネージャーやパスワード生成ツールなどで複雑な英数字記号が混ざった文字列を作って設定します。
このキーは全サイト(例えばA・B・Cの3サイト)で同じ文字列を設定します。
Action Encryption Key(暗号化鍵)とAction Signature Key(署名鍵)は同じ文字列でも動作します。
ただしセキュリティ観点からは、別の文字列を設定しておく方が良いでしょう。
画面右側の「IP Whitelist」では、万が一暗号鍵と署名鍵がバレた場合でも、IPアドレスの合致も確認してセキュリティを強化する設定ができます。
ただし、カフェ等のWi-Fiを使用する方や、自宅と会社の双方からログインする方などは、環境によってはIPアドレスが毎回変わる可能性があります。
固定IP環境かどうかを確認できない方には、何かあった際に対応できなくなる可能性があるためおススメできません。
「Miscellaneous」タブを選択します。
やや上級者向けの機能のため、意味を理解できない方はチェックしないままの方が良いでしょう。
- Force Login Redirects & Logout Everywhere
-
全サイトに強制ログイン(ログアウト)します。
ログインできるまで処理を継続し、その間画面には「Processing..」と表示されます。当然同期するサイト数が多いほど時間がかかりますが、基本的に同期性能は高いです。
※同期途中で接続が切れた場合など、同期失敗の可能性もあるため確実に同期できるとは限りません! - Force Disable Login Redirects & Logout Everywhere
-
ログイン(ログアウト)を1度試みて成功・失敗を判定します。
成功した場合のみ同期処理するため確実性に欠けますが、各サイトへの処理が軽いため、サイト数が多くても高速で処理が終わります。こちらも処理中は画面に「Processing..」が表示されます。
- Use Silent Redirection
-
チェックを入れると、上記2つの処理間の「Processing..」表示を行わないようにします。
プラグインの公式説明によれば、メッセージを表示しない方が処理が軽くなるということですが、筆者の体感速度的には変わりませんでした。同期するサイト数が多く時間がかかる場合は、処理中であることがユーザーに分かるように「Processing..」表示する(= 本項目は未チェック)方が良いでしょう。
ここで一度保存しておきます。(できれば1タブ設定毎に保存した方が良いですが…)
最低一度はプラグイン設定を保存しておかないと、接続テストした際にうまくいかない可能性が高まります。
個の保存は、万一テストに失敗した際の被害を最小限に抑える意味もあります。
「Remote Sites」タブを選択します。
画面右側の「Add Remote Site」へ、同期させるサイトのURLを入力します。
複数サイトの場合は、1サイトずつAddしていきます。
画面左の「Outgoing Actions」は、現在設定中のサイトで操作された時の動作設定です。
自サイトでチェック項目操作があった際、他のサイトに反映させます
画面中央の「Incoming Actions」は他の同期サイトで操作された時の動作設定です。
他サイトでチェック項目操作があった際、自サイトに反映します。
上級者で内容を理解していて且つ、よほどの理由がない限りは、「Outgoing Actions」と「Incoming Actions」は同じ項目にチェックを入れておきます。
項目 | 内容 |
---|---|
Login | ログイン |
Logout | ログアウト |
Create | ユーザー登録 |
Update | WordPress標準の登録情報 |
Delete | ユーザー削除 |
Password | パスワード |
Roles | ユーザー権限 |
Metadata | メタデータ(カスタムフィールド) |
最後にチェックした各項目のtestボタンを押下します。
成功すると緑色のバッジが表示されます。
エラーが発生した場合はエラー理由が書かれたポップアップが表示されます。
筆者が確認した限りでは、同期テストが成功しただけでは既存ユーザーを反映させることはできません。
必ずユーザーが何かしらのアクションを起こさないと、他サイトには反映されません。
コメント