2

現在、いくつかのサイトで janrain シングル サインオンを実装しています。ユーザーが既にこのコードでログインしているかどうかを確認します。

 JANRAIN.SSO.ENGAGE.check_login({
        sso_server: 'my_sso_server_uri',
        logout_uri: 'my_logout_uri',
        xd_receiver: 'my_xd_uri',
        token_uri: 'my_token_uri'
    });

janrain doc を理解している場合、ユーザーが既にログインしている場合は、token_uri にリダイレクトする必要があります。ただし、このリダイレクトは 1 つのケースでのみ機能するようです。

  • start : ユーザーはどのサイトにもログオンしていません
  • サイト A へのログイン
  • ユーザーがサイト B のログイン ページを開くと、自動的に token_uri にリダイレクトされます。
  • すべてのブラウザ ウィンドウを閉じる
  • サイト B でログイン ページを開きます。ユーザーは token_uri にリダイレクトされません。

しかし、ブラウザー コンソールでは、ユーザーがすべてのサイトに正しくログオンしていることがわかります。

この問題の解決、ユーザーを常に token_uri にリダイレクトする方法を教えてください。

4

1 に答える 1

1

あなたの理解は正しいようです。check_login() メソッドは、ユーザーが他のフェデレーション サイトにログインしているかどうかを確認し、ログインしている場合は、ユーザーをローカルで定義された token_uri にリダイレクトする必要があります。ユーザーがサイト B のログイン ページに明示的に移動した場合にのみこれが機能する場合、おそらく check_login() コードはそのページのみにあるのでしょうか? これが機能するためには、コード ブロックがすべてのページに表示される必要があります。

于 2013-05-01T21:18:20.103 に答える