如何通过OIDC Provider交互将用户重定向至指定自定义登录页
解决方案:自定义OIDC Provider登录页重定向
调整授权交互跳转配置
找到OIDC Provider实例的交互(interaction)配置模块,替换默认的/interaction/{uid}跳转路径为你的自定义登录页http://localhost:8003/urlto/custom/autorisation_endpoin。关键是要携带授权会话标识(比如uid)和原始OIDC请求参数,确保后续流程能正常衔接。主流库配置示例(以node-oidc-provider为例)
如果你使用node-oidc-provider,可通过interactions.url配置项覆盖默认跳转逻辑:const Provider = require('oidc-provider'); const provider = new Provider('http://localhost:8003', { interactions: { url(ctx, interaction) { // 跳转至自定义登录页,传递会话uid参数 return `/urlto/custom/autorisation_endpoin?uid=${interaction.uid}`; }, }, // 其他原有配置... });自定义登录页的流程衔接
- 在自定义登录页接收
uid参数,完成用户账号密码验证或其他身份校验逻辑。 - 验证通过后,调用OIDC Provider的交互确认接口(通常为
/interaction/{uid}/confirm),携带已验证的用户信息(如sub即用户ID)。 - 确保页面保留并传递所有原始OIDC请求参数(
state、code_challenge等),避免授权流程中断。
- 在自定义登录页接收
验证配置有效性
- 重启OIDC Provider服务,发起授权请求。
- 检查是否正确重定向到自定义登录页,且参数完整。
- 完成登录后确认是否能正常跳转回客户端的
redirect_uri并返回授权码。
内容的提问来源于stack exchange,提问作者Abel Hacking
相关产品推荐
相关产品推荐

