1

私は状況に入れました:

PHP 5.3とMYSQLで作成されたWebサイト全体があり、アクセスするにはユーザーがログインする必要があり、ログインは「単純に」ユーザー/パスワードをチェックし、ユーザーIDと他の非個人ユーザーでドメインに$_SESSIONを作成しますデータ。

PHP では、ユーザーがログに記録されているかどうかを検出するために、この $_SESSION を読み取る必要があります。

今、私はwebsocketsでNodeJSリアルタイムチャットを作成すると思います(明らかに最後のブラウザーでのみ動作しますが、socketio.jsのような外部クライアントjsではなく、純粋なHTML5サイトを探しています)が、ここに私の問題があります:

最初の問題 NodeJS で $_SESSION['user'] を取得する必要があります。これを行うには、PHP から NodeJS に「プル」する必要があり、$_SESSION[ で「update-this-user-auth」のようなメッセージを送信します。 'user'] データですが、問題は、最初に HOW が PHP サーバーから同じ (または別の) マシンで実行されている NodeJS サーバーにプルする最良の方法であることです。

そして2番目の問題は、ユーザーがPHPに$_SESSSIOnを持っているため、NodeJSでユーザーを識別する方法ですが、リクエストがユーザーnº1、nº32、またはnº999999からのものかどうかはわかりません。

PHP から NodeJS への通信の問題については、いくつかの投稿を読み、2 つの方法を取得します。

CURL ユーザー、PHP Curl を使用して NodeJS サービスを「呼び出し」、PHP から NodeJS にデータを 送受信 PHP から Node.js にメッセージを送信

DNODE、私はこのグーグルを見つけました。見栄えは良いですが、いくつかの追加のライブラリが必要です。コードを明確にし、できればシンプルにするのが好きです。 http://bergie.iki.fi/blog/dnode-make_php_and_node-js_talk_to_each_other/

この 2 つの問題に対する最善の解決策について、すべてのアイデアとコメントに感謝します。

4

1 に答える 1

2

PHPの場合:ランダムに生成されたキーをデータベースに
保存し、ユーザーの IP、ユーザー ID、およびその他のセッション情報 (作成時間、最終アクティブ、有効期限など) に関連付けることができます。また、そのキーも Cookie に保存します。

Node.jsの場合: Cookieを
読み取り、DB でキーを見つけて、セッションが有効かどうかを確認します。

したがって、基本的に、すべての情報を PHP に格納する代わりに、DB などの共有ストレージを使用します。

于 2013-07-26T07:37:33.923 に答える