IdentityServer3 перенаправляет выход на пользовательский URL

Я искал в Google, и Stack Overflow не нашел подходящего ответа.

Я использую ReactJs + Redux в клиентском приложении, .Net WebAPI используется для связи с базой данных и другой логической реализацией, и, наконец, я использую IdentityServer3 для аутентификации пользователя.

Как только я выхожу из системы, я запускаю следующий URL-адрес: https://localhost:123/core/connect/endsession

new Client
{
    Enabled = true,
    ClientName = "Super Star Application",
    ClientId = "SS",
    Flow = Flows.Implicit,
    RequireConsent = false,
    RequireSignOutPrompt =false,
    RedirectUris = new List<string>
    {
        "http://localhost:111/callback"
    },
    PostLogoutRedirectUris = new List<string> {"https://www.google.com/"},
    AllowedCorsOrigins = new List<string>
    {
        "http://localhost:111/"
    },
    AllowAccessToAllScopes=true
}

В Startup.cs у меня есть следующий код

app.Map("/core", core =>
{
    var idSvrFactory = Factory.Configure();
    idSvrFactory.ConfigureUserService("AspId");

    var options = new IdentityServerOptions
    {
        SiteName = "Super Star",
        SigningCertificate = Certificate.Get(),
        Factory = idSvrFactory,
        ProtocolLogoutUrls = new System.Collections.Generic.List<string>()
        {
            "https://www.google.co.in"
        },
        AuthenticationOptions = new AuthenticationOptions
        {
            EnablePostSignOutAutoRedirect=true,
            EnableSignOutPrompt = false,
            PostSignOutAutoRedirectDelay = 1,
            EnableLoginHint = true,
            RememberLastUsername = true,
            EnableAutoCallbackForFederatedSignout = true,
            RequireSignOutPrompt = false
        }
    };

    core.UseIdentityServer(options);
});

Я не знаю, как перенаправить на http://www.google.com вместо следующего экрана

введите здесь описание изображения

Пожалуйста, помогите мне...


person B.Balamanigandan    schedule 08.03.2017    source источник


Ответы (1)


Вам нужно вызвать конечную точку endsession, передав токен id и URL-адрес перенаправления выхода из системы в качестве аргументов.

/connect/endsession?id_token_hint={id token}&post_logout_redirect_uri=http://www.google.com

где {id token} — это токен id, возвращенный сервером идентификации при вызове конечной точки /connect/authorize.

См. документы здесь https://identityserver.github.io/Documentation/docsv2/endpoints/endSession.html

Обратите внимание, что вы ДОЛЖНЫ отправить токен идентификатора обратно, чтобы перенаправление работало, иначе проверка запроса на завершение сеанса завершится ошибкой, и перенаправление не произойдет.

person ceej    schedule 27.03.2017