后端可以修改回调地址吗?

前端开发 2026-07-07

我有一个基于Angular的前端,使用 angular-oauth2-oidc,后端是运行Duende Identity Server的 C#服务。当前的重定向URI只是网站首页。使用授权码流(code)响应模式。

目前,用户登录后会跳转到主页,然后再根据个人资料中的条件把他们跳转到特定页面。根据用户资料中的条件,我们大概有六个不同的落地页。但很明显,在他们登录之前,我们并不知道具体的落地页是哪一个。这个重定向是在Angular中完成的。

人们不喜欢这种来回跳转,我们被要求把它消除。我希望直接让他们落到正确的页面上,中间不再有跳转的过程。但在他们登录并且我读取他们的个人资料之前,我并不知道他们的重定向URI会是什么。

后端C#代码有办法修改重定向URI吗?我试过,但返回安全错误,可能是我写错了。我还没有找到在后端修改重定向URI并让它真正起作用的方法。

还有别的做法吗?当登录后有不同的落地页时,其他人通常怎么处理?

解决方案

通常,你会使用回调URI,而不是首页,例如 https://youapp.com/oauth/callback,作为注册的重定向URI。这可以是一个闪屏页类型的页面,而不是你的主页,这样的“跳转”效果会更少。

否则,你需要在用户登录前设计不同的流程来设置正确的重定向URI,并注册多个重定向URI。但我对这种做法要谨慎,因为重定向URI对安全性确实非常重要,参见 安全性

通常,你注册的回调URI会是一个回调地址,而不是首页,例如https://youapp.com/oauth/callback。这个页面可以是一个闪屏页类型的页面,而不是你的主页,这样跳转的“跳回”效果就会更少。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章