質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.48%

  • WordPress

    7470questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

  • EC-CUBE

    291questions

    EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

同一ドメイン、同一サーバ上に設置されたWPとEC-CUBEを、1度のログインで互いに会員が行き来できるようにしたい。

受付中

回答 3

投稿

  • 評価
  • クリップ 1
  • VIEW 2,238

t8opm1mu

score 2

前提・実現したいこと

同一ドメイン、同一サーバ上に設置された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などにも応用が効くようにしたいです。

よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+1

エンジニア的には楽しそうな話題ですが、
ビジネス的にはECサイトのログイン関係はセキュリティに直結する部分なので、
学習を目的として良く分からない状態で手を加えるのは正直なところリスクが高すぎるかなと思います。
個人情報の漏洩やアカウント乗っ取りが発生した場合、一発で事業が死ぬ可能性すらあります。
コスト的に許されるのであれば、瑕疵担保を明確にしたうえで外注するのがベストな内容だと思います。

もし私が実装するとしたら、
別アプリケーションとしてAPIを持つ認証サーバを作って(wordpressとEC-CUBEの修正は最低限にしたいので)、
そこに認証情報だけ統一して、
WordpressとEC-CUBEでは
プラグインで認証部分をローカルのDBじゃなくてAPI経由で確認しに行く
という様な流れでしょうか。(他にもいい方法、設計はあると思います。)

調べる流れとしては
0.シングルサインオンをキーワードにして要求を満たせるプラグインが無いか探してみる→あったらセキュリティ的に問題無いか確認して採用する。確認部分は外注する方が良いかも。

↓なかったら

1.それぞれのプラグインの作成方法の学習
直接WordpressとEC-CUBEのソースをいじってしまうとその後のアップデートに一切対応出来なくなってしまうので、プラグインという形で実装してアップデートに対応出来るようにする必要があります。
2.それぞれのプラグイン内でセッション管理について実装してみる
3.認証サーバの設計と実装
4.認証部分を認証サーバ経由に置き換えるようなプラグインの開発
という様な感じでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/20 13:12

    tanat様

    コメント、アドバイス本当にありがとうございます!とてもためになりました。
    なるほど、確かにセキュリティリスクという観点からするとかなり慎重に考えなければ鳴らない話ですね…

    取り急ぎ、頂いたアドバイス通りに1つずつ調べていきたいと思います。
    こちらの事情をいろいろと考慮していただき、心よりお礼申し上げます。
    重ね重ねありがとうございました。

    キャンセル

0

下記サイトに掲示されているコードは、おそらく例として挙げられているため「全員同じユーザとしてログイン」というものですが、ここのユーザー名を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さんの書かれているように、シングルサインオン系の更新の安定したプラグインがあればそれを利用するのが保守とセキュリティの観点からよいと思います。認証の手間を減らすということはセキュリティリスクにつながることなので、慎重にご検討ください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

-1

ドメインが同じなら、同一クッキーをもっているため、そのログイン情報を共有してあげればいいだけじゃないですか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.48%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • WordPress

    7470questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

  • EC-CUBE

    291questions

    EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

  • トップ
  • WordPressに関する質問
  • 同一ドメイン、同一サーバ上に設置されたWPとEC-CUBEを、1度のログインで互いに会員が行き来できるようにしたい。