Azure移动服务身份验证中的“不是白名单来源”错误

时间:2013-07-01 19:47:01

标签: javascript azure azure-mobile-services

我正在尝试使用Azure移动服务创建演示网站。我开始使用移动服务门户中提供的HTML / JavaScript示例应用程序。我完全按照文档中的说明添加了身份验证。

当我的index.html页面上的JavaScript试图对Facebook进行身份验证时,我会看到一个新的浏览器窗口,显示以下错误: {“code”:401,“错误”:“错误:不是白名单来源:https://mysite.azurewebsites.net”}

此错误窗口的地址栏如下: https://mysite.azure-mobile.net/login/facebook?completion_type=postMessage&completion_origin=https%3A%2F%2Fmysite.azurewebsites.net

发生这种情况时执行的客户端JavaScript行如下:

function logIn() {
    client.login("facebook").then(refreshAuthDisplay, function (error) {
        alert(error);
    });
}

我认为我已根据教程完成了所有工作,并正确设置了facebook应用程序。

我特别认为这个问题是短暂的。有时它会发生,有时它不会发生。当它发生时,我连续尝试多少次并不重要,它永远不会起作用。但是,在某些时候,我在我的演示应用程序中得到了认证,并且很高兴。几天后,我回到使用这个演示应用程序,同时没有碰到任何东西,突然间我得到了这个错误。

从提供错误消息的URL看来,此错误似乎来自Azure本身的移动服务。它不是来自我的应用程序,它不是来自Facebook。

非常感谢任何帮助解决这个问题!

1 个答案:

答案 0 :(得分:3)

要确保可以从部署在不同域上的网站访问您的移动服务,您需要在中的跨源资源共享(cors)会话中添加您的主机在Azure移动服务门户中配置页面。