gpt4 book ai didi

Angular 6、ADAL、Azure 重定向 Uri、MS Edge 重定向到 ../null

转载 作者:行者123 更新时间:2023-12-04 13:18:39 27 4
gpt4 key购买 nike

问题:

单击登录时,angular 应用程序正确地向 login.microsoft.com 发送请求。该请求获得附有有效 token 的回复。在 Firefox/Chrome 上执行此操作时没有问题,redirectUri 被正确处理并重定向到登录用户页面。

然而,在 Edge 上,似乎某些版本的 Edge 要么没有正确读取回复,要么没有正确创建登录请求 URL。生成的 redirectUri 以 ./null 站点结尾(即 https://[some URL]/null)

在调试 referrer 是 localhost 的情况下,问题不存在,重定向正确完成。只有当部署在 IIS 上时,重定向才会导致不正确的结果。

IIS 站点有一个重写规则,将 http 请求重定向到 https 流量

20190806 更新:

在进一步研究之后,我发现使用 localStorage 而不是 sessionStorage 可以使整个过程运行良好(在 Firefox/Chrome/Edge 上)另见:localStorage not working in Edge?尽管这仍然没有提供为什么 sessionStorage 不起作用的答案。版本无关(虽然我在两个系统上有两个不同的 MS Egde 版本,一个工作正常,另一个没有)

症状

它似乎只发生在某些 Edge 版本上。

Edge版本44.18362.10,EdgeHTML 18.18362按要求响应没问题。

Edge 版本 44.17763.10,EdgeHTML 18.17763 给出错误

我无法证实是这种情况,从 17763 升级 => 18392 没有解决问题。

使用

Angular 6.2.9

MsAdalAngular6Service ( https://www.npmjs.com/package/microsoft-adal-angular6 )

JWT token 持有者。

sessionStorage 作为 token 存储 => 问题通过交换到 localStorage

得到解决

app.module.ts

导入中的 MsAdal 引发剂

MsAdalAngular6Module.forRoot({
tenant: 'tenantID',
clientId: 'clientID',
redirectUri: window.location.origin,
endpoints: {
[SITE ENDPOINTS]
},
navigateToLoginRequestUrl: true,
cacheLocation: 'sessionStorage',
})

可能是 Edge 错误地解释了 window.location.origin,因为它有时也会在登录请求中注入(inject) null。

尝试过:

硬编码 redirectUri 值

使用不同的 redirectUri window 构造器 ('https://' + windows.location.hostname)

来自:https://tosbourn.com/a-fix-for-window-location-origin-in-internet-explorer/

window.location.hostname + (window.location.port ? ':' + window.location.port: '');

各种其他尝试,都导致相同的结果。

返回 redirectUri 以 ./null 结尾

有没有人见过这个问题或者知道如何解决这个问题?

最佳答案

这似乎是一个记录在案的错误。 https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/330 https://github.com/AzureAD/azure-activedirectory-library-for-js/wiki/Known-issues-on-Edge#issues

一种解决方法是在 MSAL 配置中将 NavigateToLoginRequestUrl 设置为 false。 (我看到您已将其设置为默认设置 true。)如果将其设置为 false,则用户不会被重定向到他/她开始的页面,但在回调中您可以将浏览器位置重置为您想要的使用 window.location.href 的 url。

关于Angular 6、ADAL、Azure 重定向 Uri、MS Edge 重定向到 ../null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56938304/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com