4

我正在试验 azure 移动服务,并在此处实现了身份验证示例。这适用于大多数设备(iOs、IE9 和桌面上的 chrome、IE10 Surface RT、android),但在 WP8 设备(准确地说是诺基亚 920)上它返回

“无法访问窗口打开器。它可能位于不同的 Internet Explorer 区域”

尝试从身份验证提供程序弹出窗口返回后。上面的链接中简要提到了这一点,但仅适用于从 localhost 连接到服务。这不是这里的情况,其他设备工作正常。任何特定的身份验证提供程序似乎都不是问题 - 所有(facebook、google、twitter、windows connect)都返回相同的消息。随着这些其他设备的工作,服务似乎不太可能被错误配置,但很可能有一些我遗漏的细微之处。

4

1 回答 1

1

我让身份验证工作的方式不是使用 Facebook JavaScript SDK,而是使用另一个流程,在此处描述https://developers.facebook.com/docs/facebook-login/login-flow-for-web-no-jssdk/ #第2步

为了在我从 Facebook 获得重定向时处理响应,我使用了以下代码:

function handleLoginResponse() {
    var frag = $.deparam.fragment();
    if (frag.hasOwnProperty("access_token")) {
        client.login("facebook", { access_token: frag.access_token }).then(
        function () {
            // do your thing when logged in
        }, function (error) {
            alert(error);
        });
    }
}

此代码使用 jQuery BBQ 插件,可在此处找到http://benalman.com/projects/jquery-bbq-plugin/

这样我就可以让 Facebook auth 在 WP8 上工作,并且可以将访问令牌传递给移动服务登录。

一个小问题是现在访问令牌粘在我的站点 URL 中,例如,如果用户决定共享 URL,我认为这是一个问题。我想我可以通过例如将信息放入 cookie(或本地存储)中然后重定向到我网站的纯 URL 来解决这个问题。

于 2013-08-09T11:09:41.380 回答