OAuth Custom Provider - переходит к неавторизованному, не перенаправляет на страницу входа в систему - PullRequest
0 голосов
/ 22 января 2019

OAuthPrompt возвращает токен с истекшим сроком действия и завершает работу, не показывая карточку входа.

ASP Net Core 2.2.Страницы бритвы.

Это работало в течение некоторого времени, а теперь внезапно возвращается без разрешения.При запуске в другом браузере / инкогнито он работает нормально и переходит на страницу входа в систему собственного провайдера

Можно ли как-нибудь очистить куки?Как я могу заставить пользователя вернуться на страницу входа?

Любые подсказки приветствуются.

Это мои настройки.

    public class AuthenticationMiddleware
{
    public static void SetOAuth2Options(OAuthOptions options)
    {
        options.ClientId = XXX;
        options.ClientSecret = XXX;
        options.AuthorizationEndpoint = XXX;
        options.TokenEndpoint = XXX;
        options.UserInformationEndpoint = XXX; 
        options.CallbackPath = new PathString("/signin-XXX");
        options.ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "UserId");
        options.ClaimActions.MapJsonKey(ClaimTypes.Email, "EmailAddress", ClaimValueTypes.Email);
        options.ClaimActions.MapJsonKey(ClaimTypes.Name, "Name");
        // Register to events
        options.Events = new OAuthEvents
        {
            OnCreatingTicket = async context =>
            {
                var request = new HttpRequestMessage(HttpMethod.Get, context.Options.UserInformationEndpoint);
                request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", context.AccessToken);
                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                var response = await context.Backchannel.SendAsync(request, context.HttpContext.RequestAborted);
                response.EnsureSuccessStatusCode();

                // Parse user data into an object
                var user = JObject.Parse(await response.Content.ReadAsStringAsync());
                context.HttpContext.Response.Cookies.Append("token", context.AccessToken);
                context.RunClaimActions(JObject.FromObject(user));
            },
            OnRemoteFailure = context =>
            {
                context.HandleResponse();
                context.Response.Redirect("/signin-XXX");
                return Task.FromResult(0);
            },
        };
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...