質問: ### 前提・実現したいこと 同一ドメイン、同一サーバ上に設置されたWPとEC-CUBEを、1度のログインで互いに会員が行き来できるようにしたい。 1.WordPress会員サイト URL例 http://hogehoge.com/ WPのバージョン 4.5.2 SimpleMembershipという会員制サイトプラグイン使用。会員フォーラム。 2.EC-CUBE(2.13.5) 会員制ショッピングサイト。1と同じサーバ内に設置。 URL例 http://hogehoge.com/store/ 同じメンバーID及びパスワードを両方に登録し、 1のWPフォーラムにログインした状態で2のEC-CUBEに遷移すると、 会員ログインを再度することなくEC-CUBEの方にもログインされた状態にしたい。 (逆も同様) ### 発生している問題・エラーメッセージ 現在はそれぞれ別々に2回ログインが必要。 会員の手間が非常に多いため、ログインを一度にしたい。 ### 試したこと 下記を試そうと思っている。 EC-CUBEにWPを組み込むプラグイン http://www.ec-cube.net/products/detail.php?product_id=276 近いことはできると思うが、EC-CUBEを主体にするのではなく、あくまでもWPの方を主体にしたい。 補足 -- 当方php、rubyは初心者ですが勉強中で、ある程度は読めます。 上記を実現させるのに、どういう方向から勉強をすればいいか アドバイスをいただけないでしょうか。 漠然と、会員DBを共有してそれぞれのシステムから同じDBを読みに行けばいいのではないかと思っていますが、 勉強不足のため具体的にどのように調べればいいかがわかりません。 自力でどうしてもダメだったら、費用をかけて外注することも視野に入れていますが、 外注をまるなげするのではなく、できるだけ自分のスキルにして 他のカートや他のCMSなどにも応用が効くようにしたいです。 よろしくお願いいたします。
回答: 下記サイトに掲示されているコードは、おそらく例として挙げられているため「全員同じユーザとしてログイン」というものですが、ここのユーザー名をEC-CUBEの認証システムから持ってきて、ログインしている状態のみここでの自動ログインをするようにすればなんとなくいけそうな気がします。 EC-CUBEは不案内なのでどう呼び出すかまではわかりませんが、EC-CUBE外のPHPからEC-CUBEのログイン状態を調べる方法などは探せば出てくると思います。 【wordpressへ自動ログイン - plug 'em in WordPressのプラグイン紹介 plug-em in】 http://plug-em.in/tutorial/wordpressへ自動ログイン/ > > > ``` > if ( !function_exists( 'auto_login' ) ) { > function auto_login() { > $user_login = 'login_username'; > $user = get_userdatabylogin( $user_login ); > $user_id = $user->ID; > wp_set_current_user( $user_id, $user_login ); > wp_set_auth_cookie( $user_id); > do_action( 'wp_signon', $user_login ); > } > } > add_action( 'set_current_user', 'auto_login' ); > ``` > > このコードを書く場所は、functions.phpに記述するか、プラグインとして作成することになります。本体のアップデートに影響はされませんが、使用しているWordPressの関数やフックがアップデート時に変化するかどうかについては逐次確認することが必要になります。(認証周りはそこまで派手に変更しないものですが可能性はゼロではない) 外注で頼んだとしてもアップデート時のメンテナンス(機能チェック及び修正)までやってくれるかは契約次第(保守契約などをその部分まで対応させるかどうかなど)だと思います。 tanatさんの書かれているように、シングルサインオン系の更新の安定したプラグインがあればそれを利用するのが保守とセキュリティの観点からよいと思います。認証の手間を減らすということはセキュリティリスクにつながることなので、慎重にご検討ください。