如何使用HTML从Windows Phone 8验证用户的蔚蓝移动服务?

时间:2013-04-30 06:11:08

标签: html windows-phone-8 azure-mobile-services

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

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

尝试从验证提供程序弹出窗口返回后。这在上面的链接中简要提到,但只能从localhost连接到服务。这不是这种情况,其他设备工作正常。它似乎不是任何特定身份验证提供程序的问题 - 所有(Facebook,谷歌,推特,Windows连接)返回相同的消息。而且当这些其他设备工作时,服务似乎不太可能被错误配置,但很可能会有一些我想念的微妙。

1 个答案:

答案 0 :(得分:1)

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

为了在从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认证在WP8上运行,并且我可以将访问令牌传递给移动服务登录。

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