首页 > 解决方案 > 如果不清除 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();

标签: single-page-applicationopenid-connect

解决方案


推荐阅读