ユーザーが他のページをクリックすると、ユーザーの ID が表示されます。トークンを生成するときは、uid ソルトまたはより複雑な暗号化アルゴリズムを使用してトークンを暗号化して生成します。ユーザーの ID を受信したら、その ID を使用して暗号化し、トークンと比較します。同意する場合は、ログインされます。 (おそらくこれがあなたが達成したい効果です?)
トークンは実際には user_id=xxx&token=xxxx を置き換えます。ユーザー ID を通じてログイン情報をクエリし、クエリされたトークンがパラメーター token と一致するかどうかを比較します。
シングルサインオンのために私が考えた解決策
例えば ユーザーセンターpassport.test.com ペイメントセンターpay.test.com passport.test.com内 p3pヘッダー("P3P: CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"); ユーザーのログイン情報を暗号化して Cookie に書き込みます
PC側の同じ第1レベルドメイン名でのシングルサインオンはCookieを操作するだけです
もちろんトークンとCookieの使い方は同じです
何が問題なのかは分かりません。実行することはできません。ちょっと見てください、
1. 新しいページでトークンを取得できますか? 2. トークンに基づいて Redis 内のユーザー データを確認できますか? 3. ユーザー データを確認できる場合、他に質問はありますか?
主な質問は、ユーザーがアクセスするときにトークン情報を持ち込むことをどのように許可するかです。
Redis を使用して保存し、Cookie 値で検証します。
ユーザーが他のページをクリックすると、ユーザーの ID が表示されます。トークンを生成するときは、uid ソルトまたはより複雑な暗号化アルゴリズムを使用してトークンを暗号化して生成します。ユーザーの ID を受信したら、その ID を使用して暗号化し、トークンと比較します。同意する場合は、ログインされます。 (おそらくこれがあなたが達成したい効果です?)
ちょっと待って、シングル サインオンのトークンの問題を考慮することに加えて、サイト A にログインしてサイト B を開いたときに生成された情報を直接取得する方法を考慮する必要があります。実際にはサイトごとにCookieやセッションが異なり、取得することができません。 ucenter がログインすると、すべての兄弟サイトに対して js 経由で http リクエストを開始します。これは、ログイン操作のためにすべてのサイトにトークンを渡すことと同じです。
トークンは実際には user_id=xxx&token=xxxx を置き換えます。ユーザー ID を通じてログイン情報をクエリし、クエリされたトークンがパラメーター token と一致するかどうかを比較します。
シングルサインオンのために私が考えた解決策例えば
pay.test.com から Cookie 情報を取得し、passport.test.com インターフェースに送信してログイン情報を確認しますユーザーセンターpassport.test.com
ペイメントセンターpay.test.com
passport.test.com内
p3pヘッダー("P3P: CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR");
ユーザーのログイン情報を暗号化して Cookie に書き込みます