バージョン選択

フォーラム

メニュー

オンライン状況

36 人のユーザが現在オンラインです。 (31 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 36
もっと...

サイト内検索

質問 > その他 > SNS(MyNETS)との連携をしたいのですが、、

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
k_kenken
投稿日時: 2010/5/22 22:40
対応状況: −−−
半人前
登録日: 2010/5/17
居住地:
投稿: 19
SNS(MyNETS)との連携をしたいのですが、、
いつもこちらのコミュを参考にさせていただいてます。

ほぼ素人のk_kenkenと申します。環境はこちらになります。

------------------------------------------------------------------------------------------
[EC-CUBE] 2.4.3 新規インストール
[レンタルサーバ] 自宅サーバ
[OS] CentOS5.4
[PHP] PHP 5.1.6
[データベース] MySQL 5.0.77
[WEBサーバ] Apache2.2.3
------------------------------------------------------------------------------------------

現在MyNETS1.2.0.4を使ってのSNSを立ち上げようとしておりまして、そのSNS運営に必要な維持費をEC-CUBEで構築したネットショップで賄おうとしています。

どうせならSNSとEC-CUBEを同じメールアドレス、パスワードでログインできるようにして、セッションも共有できたら良いと思いまして、いろいろと調べたりDBをいじったりしていました。

どんな形での連携かを説明させていただくと、、

■新規登録に関して
SNSとEC-CUBEの両方から新規登録は可能に。

■セッション
SNSにログインした状態 ⇒ EC-CUBEのサイトにアクセス ⇒ EC-CUBEにもログインした状態で移動できる。(逆も同じです)

SNSをログアウト ⇒ EC-CUBEからもログアウト(逆も同じです)

SNSにログインしていない状態 ⇒ EC-CUBEのサイトにアクセス ⇒ EC-CUBEにはログインしない状態で移動。

このような事がしたいのです。
実現には「共通のOpenIDサーバーを用意する」など、いろいろなやり方があると思うのですが、どのやり方も初心者には敷居が高く比較的簡単なやり方を模索していました。

自分の中では1回の認証手続きで、複数のOSやアプリケーションなどにアクセスできるシングルサインオンが良いのではという結論になりました。

ディレクトリやLDAPなどは、やはり敷居も高いです。
確かMyNETSが対応していなかったと思いますし。。

なので強引かと思いましたが、SNSとEC-CUBEのデータベースを1つにしてしまいました。※SNSのDBにEC-CUBEのDBのテーブルをコピーしただけです。

その後、ログインで使う(メールアドレス・パスワードが格納されている)テーブルも1つにまとめました。

▼メールアドレス・パスワードが格納されているテーブル
MyNETSは テーブルc_member_secure
EC-CUBEは テーブルdtb_custormer

SNSの方は極力いじりたくなかったので、テーブルc_member_secureに テーブルdtb_customerの持つ独自のカラム(住所 addr01、電話番号など)を追加してあげただけです。

とりあえずEC-CUBEのサイトからテーブルdtb_custormerにアクセス⇒ログインをする⇒会員登録内容変更ページ(data/Smarty/templates/default/frontparts/form_personal_input.tpl)で SNSのテーブルc_member_secureからデータを引っ張ってきて表示させる事だけは出来ました。※メールアドレス・パスワード以外。

それじゃあ、EC-CUBEのサイトからログインする時に、テーブルdtb_custormerじゃなく、SNSのテーブルc_member_secureを見るようにすれば良いだろうと思いましたが、ここで落とし穴が。

MyNETSは テーブルc_member_secure
メールアドレスはバイナリデータで格納されています。
パスワードは暗号化され、バイナリデータで格納されています。

EC-CUBEは テーブルdtb_custormer
メールアドレスはテキストデータで格納されています。
パスワードは暗号化されたテキストデータで格納されています。

当然、EC-CUBEのサイトからのログインでテーブルを dtb_customer ⇒ c_member_secure にしただけでは、メールアドレス、パスワードが違いますと認証ではじかれてしまいます。

認証の記述があると思われる
MyNETSの /webapp/modules/pc/do/o_login.php と
EC-CUBEの /data/class/SC_Customer.php を
見比べていますが、、、どう直したら良いのか検討がつきません。

要はEC-CUBEにログインする時に、入力されたメールアドレス・パスワードを一致するかの判断をする時に、

メールアドレスはバイナリ化して。
パスワードはMyNETSの暗号方式で暗号してバイナリ化して。

という処理をすれば良いのかと思うのですが、やり方が全然分からなくて困っています。

こちらはEC-CUBEのコミュなので、MyNETSの事が絡む質問で申し訳ないのですが、良いアドバイス、出来ればEC-CUBEのこのファイルのソースをこう変更すれば出来るのでは?と言った具体的な回答を希望しております。※スキルがないのでわがまま言ってスミマセン。。

どうかよろしくお願いいたします。
kishik
投稿日時: 2010/5/24 16:52
対応状況: −−−
仙人
登録日: 2009/4/3
居住地: 東京
投稿: 382
Re: SNS(MyNETS)との連携をしたいのですが、、
完成までのソースレベルでのアドバイスを期待するのは難しいかもしれません。。
みなさんボランティアでやってらっしゃるので。

しかしながら、k_kenken様はプログラムソースを読んでいくこともできるようですし、もう少し続ければできるのではないかとお見受けします。

MyNETSもPHPプログラムのようですし、暗号化部分のロジックを真似てEC-CUBE側に実装することでできるかと。


-----
カスタマイズ承ります
http://ec-cube.ec-orange.jp/
k_kenken
投稿日時: 2010/5/24 22:16
対応状況: −−−
半人前
登録日: 2010/5/17
居住地:
投稿: 19
Re: SNS(MyNETS)との連携をしたいのですが、、
kishik様

書込みありがとうございます。

引用:

完成までのソースレベルでのアドバイスを期待するのは難しいかもしれません。。
みなさんボランティアでやってらっしゃるので。


kishik様のおっしゃるとおりですね、申し訳ありません。

答えていただいてるだけでもありがたいのに、それ以上を望むのであれば業者の方に頼むのがスジですよね。

出来るとこまで自分でなんとか、がんばってみます。

貴重なお時間を割いていただいてのコメントありがとうございました!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,962名です
総投稿数は110,019件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.