single-page-application - 如果不清除 SPA 上的 cookie,就不会发生逻辑重定向
问题描述
我正在使用基于反应的 SPA 和 OpenId 身份验证。即使我从中间件调用了 ChallengeAsync(),如下面的代码所示,刷新页面时不会重定向到登录页面以验证用户。当我们进行硬刷新(ctrl+F5)时,它会重定向。谁能建议这里可能缺少什么?
app.UseHttpsRedirection();
// Must go before UseMvc
app.UseAuthentication();
app.Use(async (context, next) =>
{
var result = await context.AuthenticateAsync(OpenIdConnectDefaults.AuthenticationScheme);
context.User = result != null && result.Succeeded ? result.Principal : new ClaimsPrincipal(new ClaimsIdentity());
if (!context.User.Identity.IsAuthenticated)
{
await context.ChallengeAsync(new AuthenticationProperties {
IsPersistent = true,
ExpiresUtc = DateTime.UtcNow.AddHours(int.Parse(CookieExpiryInHours))
});
}
else
{
await next();
}
});
app.UseStaticFiles();
app.UseSpaStaticFiles();
解决方案
推荐阅读
- python - 使用 pandas 的滚动统计模型协整
- javascript - 为来自 State 的初始表单值的 Redux 表单编写 Jest 测试时出错
- rust - 在接受特征对象的方法中使用关联函数
- c# - C# 7.3 只读结构类型“this”参考
- php - foreach 循环读取具有三个用户的数组中的元素
- objective-c - 无法在服务应用程序的 NSTableView 中选择行
- jquery - 如何在 div 之外定位多个类
- wildfly-swarm - Wildfly-swarm 8.5.0 创建系统属性而不是根元素
- python - python 使用 concurrent.futures 库进行 SHA256 + salt 加密
- c++ - 如何保存对抽象基类的指针/引用但仍可在 C++ 中复制