Duende Identity Server /connect/authorize缺失ReturnUrl参数问题
问题排查:Duende IdentityServer 授权请求未返回带ReturnUrl的登录跳转URL
以下是可能导致该问题的几个原因及排查方向:
客户端重定向URI不匹配
检查C#客户端配置的RedirectUris与React应用oidc-client配置的redirectUri是否完全一致(包括协议、域名、端口、路径)。两者不一致时,IdentityServer无法确认合法的回调地址,会跳过登录页跳转流程,直接返回授权端点URL。确保RedirectUris配置的是SPA的回调地址,而非IdentityServer自身的地址。客户端授权类型配置错误
确认C#客户端配置中AllowedGrantTypes是否设置为GrantTypes.Code。若授权类型与实际使用的授权码模式不匹配,IdentityServer的流程逻辑会异常,无法触发登录页跳转并附加ReturnUrl。oidc-client核心参数缺失
检查React应用的oidc-client配置:- 必须设置
responseType: "code",对应授权码模式; - 必须包含
openid基础scope,缺少该scope会导致IdentityServer不触发标准的OpenID Connect登录流程; - 确认
clientId与C#客户端配置的ClientId完全一致。
- 必须设置
IdentityServer登录页路由/配置异常
检查IdentityServer的启动配置:- 若使用默认UI,需确认是否正确启用了
AddIdentityServer().AddDefaultUI(); - 若使用自定义登录页,需确保登录路由能正确接收并处理ReturnUrl参数,且IdentityServer已配置正确的登录端点路径。
- 若使用默认UI,需确认是否正确启用了
请求参数完整性问题
开启oidc-client的调试模式,检查向/connect/authorize发送的请求是否包含完整参数(如state、nonce等)。这些参数缺失或无效时,IdentityServer无法正常处理跳转逻辑,导致ReturnUrl未被附加。
内容的提问来源于stack exchange,提问作者RuiRafael
相关产品推荐
相关产品推荐

