ホームページ  >  に質問  >  本文

JavaScript - Redis を使用してシングル サインインを実装する

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

我想大声告诉你我想大声告诉你2706日前828

全員に返信(5)返信します

  • 淡淡烟草味

    淡淡烟草味2017-05-24 11:32:41

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

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

    返事
    0
  • 阿神

    阿神2017-05-24 11:32:41

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

    返事
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-24 11:32:41

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

    返事
    0
  • PHP中文网

    PHP中文网2017-05-24 11:32:41

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

    返事
    0
  • PHP中文网

    PHP中文网2017-05-24 11:32:41

    トークンは実際には 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
  • キャンセル返事