0

www.example1.comなどのDNNサイトにSingleSignOnを実装しました。www.example2.com という別のサイトがあります。どちらのサイトも、Web サービスを使用して外部データベースからユーザーを認証する共通のログイン ページにリダイレクトされます。

問題は、example1.com のログイン ボタンをクリックすると、ユーザーが一般的な sso ログイン ページにリダイレクトされ、認証が成功すると元のサイトにリダイレクトされることです。新しいタブを開いて example2.com という URL を入力すると、ユーザーはログインしていません。

しかし、example2.com のログイン ボタンをクリックすると、ユーザーは自動的にログインします。

私が正確に望むのは、最初のタブで1つのサイトにログインし、2番目のタブで別のサイトを開くと、ページの読み込み時にユーザーのみがログインする必要がありますが、ログインクリックではありません.

この問題をどのように処理できますか? どんな助けでも大歓迎です。

4

1 に答える 1

0

私はこれに似たようなことをします。

データベースは、現在ログインしているユーザーを追跡する必要があります。共通ログイン ページにリダイレクトする前に、ユーザーがログインしているかどうかを確認する必要があります。example2.com は、共通ログイン ページにリダイレクトする前に、ユーザーがログインしているかどうかを確認していません。 .

これが私たちの仕組みです:

  1. リダイレクトする前に、両方のサイトで Cookie/トークンを確認する必要があります
  2. ユーザーがサイトにログインし、認証される
    • ユーザーをトークンデータベースに書き込みます
    • トークンを有効期限付きの Cookie に保存します
  3. 後続のリクエストは、Cookie からトークンを読み取り、トークン データベースに対して検証します。
  4. ユーザーがログアウトすると、Cookie とデータベース エントリが削除されます
    • ユーザーが適切にログアウトしない場合は、一定の間隔でトークンをクリーンアップする必要があります
于 2013-09-05T18:14:31.607 に答える