成功登录后的 Node.js Express 无限重定向循环
Posted
技术标签:
【中文标题】成功登录后的 Node.js Express 无限重定向循环【英文标题】:Node.js Express infinite redirect loop after successful login 【发布时间】:2021-12-12 19:17:13 【问题描述】:我正在 Node.js Express 前端应用程序上设置 Keycloak。
我已经为我的私人路线添加了 keycloak.protect();这成功地将未经身份验证的用户重定向到登录页面。
用户登录或注册后,它会重定向回私有根目录,但 keycloak 保护再次失败并将您重定向回身份验证服务器,然后身份验证服务器将您重定向回私有路由等等。
我已将 keycloak 身份验证服务器配置为使用“标准流程”、“直接访问授权”。
我的自然假设是,由于 302 清除了标头,因此当 keycloak.protect 正在查看请求时,Auth 标头不存在,但我已按照文档中的建议对其进行了编码。
Keycloak 身份验证服务器中是否有一个配置用于控制重定向回应用程序?
【问题讨论】:
【参考方案1】:这可能与你initialize your sessionStore的方式有关
如果您在 nginx(或其等效的 Kubernetes Ingress Controller)之类的反向代理后面运行,您可能会成功地告诉您的快速应用信任前面的代理。这与 SSL 卸载以及 express 对它的反应方式有关。
app.enable('trust proxy');
否则,请仔细查看 keycloak-connect 生成的日志。它们在某些时候可能很神秘,但它们为进一步调试提供了一个很好的起点。
【讨论】:
以上是关于成功登录后的 Node.js Express 无限重定向循环的主要内容,如果未能解决你的问题,请参考以下文章
使用 passport.js、mysql 和 express-session 保持登录状态
Node.js + Express 4.x + MongoDB 构建登录注册
Node.js+express+MySQL仿美团注册登录绑定第三方登录
node.js基于express框架搭建一个简单的注册登录Web功能