首页 > 解决方案 > IdentityServer4 在 LoginUrl 中编码 #

问题描述

我正在使用带有 ui-router 的 AngularJS 为 IdentityServer4 构建前端,但如果我设置为UserInteraction.LoginUrl获取urlencoded,则会破坏角度。/index.html#!/login#

我一直在尝试解决此问题,但找不到任何相关的帖子或文档。

对于 Angular,不幸的是,查询字符串必须在 # 之后才能使 $location 起作用,因此从 url 中删除 #!/login 不是一个有效的解决方案。

标签: angular-ui-routeridentityserver4

解决方案


在我的解决方案中,我基本上将以下内容用于用户交互。实际的 SPA 应用程序已加载,因为我使用的是 usefileserver,它也在内部提供默认文件“/Account/index.html” - 我在 wwwroot 内创建了帐户文件夹

加载 index.html 后,角路由会处理其余的

 services.AddIdentityServer(setupAction =>
    {
        setupAction.UserInteraction.LoginUrl = "/Account#Login";
        setupAction.UserInteraction.LogoutUrl = "/Account#Logout";
        setupAction.UserInteraction.ErrorUrl = "/Account#Error";
    })

我没有遇到任何编码问题


推荐阅读