angular - SigninRedirectCallback 期间的 OIDC 客户端编码 URL
问题描述
我正在使用外部身份服务器构建应用程序。登录工作正常,只有当被发送回 signin-oidc 页面时才会发生奇怪的事情。
我正在使用 HashLocationStrategy 所以 URL 看起来像这样。
http://localhost:4200/#/signin-oidc#id_token=....
但是在加载此页面几秒钟后,似乎 URL 在第一个 # 之后被编码,这使得它看起来像这样:
http://localhost:4200/#%2Fsignin-oidc%23id_token=....
这会导致我的应用重定向到 404 页面。
登录重定向回调函数如下所示:
this.manager.signinRedirectCallback().then((user: User) => {
if (user) {
this.user = user;
this.router.navigate(['/']);
}
});
它没有达到路由器导航功能,所以这不是问题。有人可以帮我解决这个问题吗?
解决方案
您可以尝试反序列化 URL 参数 OnInit
例如:
decodeURIComponent(string)
检索解码的 URL 后调用您的 signinRedirectCallback()
推荐阅读
- wix - Windows 安装程序 XML。如何使用自定义操作打开文件夹?
- bash - 流式传输时更改 ffmpeg 输入
- ios - 我的应用程序属于哪个域(由 siri 套件支持)以及用于实现 siri 的意图是什么?
- scala - Spark Scala获取空指针异常
- yammer-api - 通过 Yammer Rest API 授予 Adminrole
- variant - 如何在 Nim 中为 kind Variants 编写访问器
- python - 如何将 RegularGridInterpolator 与不同维度(纬度/经度/时间)的数据集一起使用?
- docker - 阻止从 Docker 主机访问容器
- php - Wordpress:问题管理 wp-users 和 taxonomy.php 文件
- python - 无法避免 JSON 文件中的列表项以新行打印