JavaScript - Redis を使用してシングル サインインを実装する
我想大声告诉你
我想大声告诉你 2017-05-24 11:30:41
0
5
850

ユーザーがログインすると、ユーザー情報が redis に保存され、同時にトークン値が生成され、ユーザーが他のインターフェースをクリックすると、トークン値が引き継がれてログイン状態が表示されます。コードを実装しますか? 私が書いたコードは常に実装できませんか?

我想大声告诉你
我想大声告诉你

全員に返信(5)
淡淡烟草味

PC側の同じ第1レベルドメイン名でのシングルサインオンはCookieを操作するだけです
もちろんトークンとCookieの使い方は同じです
何が問題なのかは分かりません。実行することはできません。ちょっと見てください、

1. 新しいページでトークンを取得できますか? 2. トークンに基づいて Redis 内のユーザー データを確認できますか? 3. ユーザー データを確認できる場合、他に質問はありますか?

いいねを押す +0
阿神

主な質問は、ユーザーがアクセスするときにトークン情報を持ち込むことをどのように許可するかです。
Redis を使用して保存し、Cookie 値で検証します。

いいねを押す +0
我想大声告诉你

ユーザーが他のページをクリックすると、ユーザーの ID が表示されます。トークンを生成するときは、uid ソルトまたはより複雑な暗号化アルゴリズムを使用してトークンを暗号化して生成します。ユーザーの ID を受信したら、その ID を使用して暗号化し、トークンと比較します。同意する場合は、ログインされます。 (おそらくこれがあなたが達成したい効果です?)

いいねを押す +0
Ty80

ちょっと待って、シングル サインオンのトークンの問題を考慮することに加えて、サイト A にログインしてサイト B を開いたときに生成された情報を直接取得する方法を考慮する必要があります。実際にはサイトごとにCookieやセッションが異なり、取得することができません。 ucenter がログインすると、すべての兄弟サイトに対して js 経由で http リクエストを開始します。これは、ログイン操作のためにすべてのサイトにトークンを渡すことと同じです。

いいねを押す +0
Ty80

トークンは実際には 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 に書き込みます

pay.test.com から Cookie 情報を取得し、passport.test.com インターフェースに送信してログイン情報を確認します

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート