![](/img/trans.png)
[英]Refused to display 'https://www.facebook.com/' in a frame because it set 'X-Frame-Options' to 'deny'
[英]authContext.login() causes “ Refused to display ‘login.microsoftonline.com…’ in a frame because it set ‘X-Frame-Options’ to ‘deny’ ”
我目前正在尝试将我的网站实施到 Microsoft Teams 中。 为此,我使用 App Studio 制作了一个自定义应用程序。 在那个应用程序中,我有一个选项卡可以指向我的网站。 该网站有一个按钮,该按钮执行一段代码,在该代码中尝试使用 authContext.login(),这会导致该站点定向到 Microsoft 登录并返回到重定向。
在网络浏览器(Firefox、Chrome、Edge)中,它工作正常。 但是,当我尝试在 Teams 桌面客户端中使用 authContext.login() 时,我在 DevTools 控制台中收到此错误(出于安全考虑,我更改了这篇文章的一些十六进制代码):
该网站一直显示到带有 authContext.login() 的按钮被执行,然后它消失并抛出错误。
这是我的按钮的代码片段:
<!--- Import packages for authentication information in Teams/Azure --->
<script src="https://secure.aadcdn.microsoftonline-p.com/lib/1.0.15/js/adal.min.js" crossorigin="anonymous"></script>
...
function loginO365() {
let config = {
clientId: "190af997-d6f8-4730-9462-e13dee41d451",
redirectUri: "#application.gc_app_rootURL#", // same URL as redirect in error and Azure app
cacheLocation: "localStorage",
navigateToLoginRequestUrl: true,
};
let authContext = new AuthenticationContext(config);
let isCallback = authContext.isCallback(window.location.hash);
authContext.handleWindowCallback();
authContext.login(); // causes error
}
我的问题:
Microsoft 不允许其身份验证对话框在 I 框架中打开。 它在浏览器中运行良好,但 MS Teams 是在 I-frame 上实现的,这就是您收到此错误的原因。
请查看选项卡流的 Microsoft Teams 身份验证流。
这是授权代码示例的墨水
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.