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);
},
};
}