angular - IdentityServer4 endsession 重定向到帐户/注销给出 404
问题描述
我在 Azure 中通过 https url 运行 IdentityServer4,并且我正在使用带有angular-oauth2-oidc 库的 Angular CLI 项目来处理隐式流。我正在尝试设置单点注销,但它无法正常工作。
我正在调用logOut
自动OAuthService
配置(通过发现文档)在身份验证服务器上使用注销 url,即https://my-id4-server.example.com/connect/endsession
使用包含 atoken_hint
和 a 的查询字符串参数postLogoutUri
。
出于某种原因,实际行为是 IdentityServer4 将浏览器重定向(302)到 url https://my-id4-server.example.com/account/logout?logoutid=...
,浏览器为此获得404。此外,如果我在单独的选项卡中打开 IdentityServer 页面,我可以看到我的会话仍然存在。
预期的行为是我的会话结束,并且我被重定向回我的 SPA。
在 ID4Server 端,我配置了:
RedirectUris
以及PostLogoutRedirectUris
(http://localhost:4200
我的 SPA 当前运行的地方)等;AllowedGrantTypes
设定为Implicit
AllowedCorsOrigins
还允许我的本地主机 SPA
此外,我可以在配置端点中看到endsession
正确配置的.well-known
端点。
在 SPA 方面,我配置了issuer
、redirectUri
、clientId
和scope
. 使用重定向返回登录就可以了。
底线:如果endsession
端点重定向到account/logout
哪个又给出 404,有什么问题?
解决方案
问题是Logout(...)
在 IdentityServer 方面缺少 Controller 操作。如果你没有这些,但其他一切都在那里,那么你就会得到所说的行为。
推荐阅读
- r - 在R中找到4个坐标的中点坐标
- javascript - 阻止外部 .js 在 WordPress 上加载?
- sql - 查询中的 SQL Server“将数据类型 varchar 转换为 bigint 时出错”
- cordova - 尝试在我的科尔多瓦应用程序中设置访问策略
- azure - Azure Function Apps 的资源消耗似乎高了一百万倍,忽略了最大使用配额
- javascript - 我怎么能创建一个
- 每个帖子的元素
- python - `pip freeze > requirements.txt`出错
- jquery - Ajax 不使用 Jquery .post 方法和 PHP 填充数据列表
- javascript - 未考虑 NodeJS 的 json 更改
- javascript - 使用 AWS CDK 合成 lambda 函数时,为什么会出现“this.combinedGrant 不是函数”?