IdentityServer4切换HTTP环境后登录成功仍跳转回登录页面求助
IdentityServer4 HTTP环境下登录成功后跳转回登录页的原因分析
Cookie安全属性未调整
IdentityServer4和MVC客户端默认会把认证Cookie标记为Secure,仅允许HTTPS传输。切换到HTTP后,浏览器会拒绝保存这类Cookie,导致登录状态无法持久化。需要手动关闭该配置:- IdentityServer4端:在
ConfigureServices的IdentityServer配置里,添加options.Cookie.SecurePolicy = CookieSecurePolicy.None - MVC客户端:配置Cookie认证时设置
Cookie.SecurePolicy = CookieSecurePolicy.None,同时OIDC配置中把RequireHttpsMetadata设为false
- IdentityServer4端:在
IdentityServer4强制HTTPS的配置未关闭
旧版IdentityServer4默认启用RequireSsl强制HTTPS访问,切换HTTP后需在Startup中禁用:
services.AddIdentityServer(options => { options.RequireSsl = false; }) // 后续配置...
回调URL配置未完全更新
检查客户端配置里的RedirectUris、PostLogoutRedirectUris是否全部替换为HTTP地址。如果仍残留HTTPS地址,登录成功后的回调请求会因URL不匹配被拦截,进而重新跳转至登录页。OIDC元数据地址仍为HTTPS
确认MVC客户端的Authority地址已改为HTTP,且RequireHttpsMetadata设为false。否则客户端会尝试通过HTTPS获取元数据,失败后会导致认证流程异常,无法维持登录状态。SameSite Cookie配置导致的问题
若Cookie的SameSite设置为Strict或Lax,在HTTP环境下的跨场景(比如同一域名不同端口)可能出现Cookie无法被正确携带的情况。测试环境可临时将SameSite设为None(需配合Secure=false),或调整为Lax适配。
内容的提问来源于stack exchange,提问作者Alexu
相关产品推荐
相关产品推荐

