1

このようなURL " http://mywebsite.com " があります。Web アプリケーションのログインに Auth0 を使用しています。ユーザーがアプリケーションにログインすると、同じログイン (シングル シングル サインオン) を使用して、WordPress サイトと他の Web サイトにユーザーをログインさせます。ユーザーがアプリケーションからログアウトしたら、wordpress や他の Web サイトからもログアウトする必要があります (シングル サイン オフ/アウト)。

出来ますか?

より良いオプションを提案してください

4

4 に答える 4

2

これを個人的に行った経験はありませんが、これは Auth0 のドキュメントから直接引用したものです:

「これにより、そのユーザーの Auth0 によって設定されたシングル サインオン Cookie がすべて消去されます。ユーザーを ID プロバイダーからログアウトする場合は、フェデレーション クエリ文字列パラメーターをログアウト URL に追加します。

https://appname.auth0.com/v2/logout?federated "

于 2015-06-23T19:55:37.677 に答える
1

@udayrの答えは私を正しい道に導きました:

私は実際に ASP.Net Owin を使用しているので、次のようにすべてのアプリのAuth0AccountControllerでLogOffエンドポイントのオーバーロードを作成しました。

    [HttpGet]
    public ActionResult LogOff() {
        return this.LogOff("");
    }

次に、SLO (Single Log Of) ビューを追加し、次のコードを追加しました。

<iframe id="app1" height="0" width="0" src="http://app1.localtest.me/Auth0Account/LogOff"></iframe>

<iframe id="app2" height="0" width="0" src="http://app2.localtest.me/Auth0Account/LogOff"></iframe>

<h2 id="message">Logging off, please wait...</h2>

<script>

    var app1Ready = false;
    var app2Ready = false;

    $('iframe').load(function (e) {

        switch ($(e.target).attr("id")) {
            case "app1":
                app1Ready = true;
                break;
            case "app2":
                app2Ready = true;
                break;
        }

        if (app1Ready && app2Ready) {

            $("#message").html("You have been Logged Off successfully!");

        }

    });

</script>

基本的に、iframe を介して新しい LogOff エンドポイントに Get 呼び出しを行う必要があります。唯一の欠点は、すべてのアプリケーションが他のすべてのアプリケーションのログオフ URL を知る必要があり、これをすべてのアプリケーションに実装する必要があることです。

于 2016-08-24T16:52:10.290 に答える