You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Skoruba IdentityServer4接入MVC客户端出现Invalid Redirect_Uri错误

错误原因
    1. 回调路径不匹配:MVC项目Startup中OpenIdConnect配置的CallbackPath为/Home/,但IdentityServer中该客户端配置的允许重定向地址(RedirectUris)仅包含https://localhost:44332/signin-oidc,IdentityServer会严格校验重定向地址完全匹配,校验不通过就会抛出Invalid Redirect_Uri错误。
    1. 登出回调路径不匹配:MVC中配置的SignedOutCallbackPath为/Home/,和IdentityServer中配置的PostLogoutRedirectUris值https://localhost:44332/signout-callback-oidc不匹配,后续登出操作也会触发同类错误。
    1. 隐含配置问题:IdentityServer中MVC客户端允许的Scope列表里写的是PS.webApi,但MVC项目中请求的Scope为PS.WebApi.Read,和已定义的ApiScopeWebApi.Read也不匹配,重定向问题解决后会继续抛出Scope校验错误。
  • 额外编译问题:你提供的Startup代码开头多了无效字符sdfsdf,会直接导致编译失败。
解决方案
    1. 修正MVC项目OpenIdConnect配置(推荐方案,使用默认回调路径无需额外开发)
      删除代码开头的无效字符sdfsdf,修改Startup类中AddOpenIdConnect的回调路径配置:
// 删掉原来错误的CallbackPath、SignedOutCallbackPath配置,替换为以下两行
options.CallbackPath = new PathString("/signin-oidc");
options.SignedOutCallbackPath = new PathString("/signout-callback-oidc");

如果确实需要自定义回调路径为/Home/,则需要修改IdentityServer中MVC客户端的配置,在RedirectUris中添加https://localhost:44332/Home/,PostLogoutRedirectUris中添加https://localhost:44332/Home/,注意路径的末尾斜杠、大小写必须和请求的完全一致。

    1. 修正Scope配置
      修改Identityserverdata.json中MVC客户端的AllowedScopes节点,将错误的PS.webApi替换为实际请求的Scope:
"AllowedScopes": [
  "openid",
  "email",
  "profile",
  "roles",
  "address",
  "WebApi.Read"
],
    1. 生效配置
      如果你的IdentityServer已经完成过数据初始化,修改Identityserverdata.json不会自动更新数据库配置,需要进入Skoruba.IdentityServer4.Admin后台(地址为https://localhost:44303),手动找到Mvc_ClientId客户端,同步修改重定向地址、登出重定向地址、允许的Scope三个配置项,保存后重启STS服务和MVC项目即可生效。

内容的提问来源于stack exchange,提问作者Akbar Parhizkari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:06:03