OAuthPrompt返回过期的令牌,并退出而不显示登录卡。
ASP Net Core 2.2。 剃刀页面。
这确实工作了一段时间,但现在突然恢复了原状。在其他浏览器上/隐身模式下运行时,它可以正常运行并转到自定义提供程序的登录页面
我可以以某种方式清除cookie吗?如何强制用户返回登录页面?
任何提示表示赞赏。
这些是我的设置选项。
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);
},
};
}