401未经授权的错误将Azure移动服务表读取为经过身份验证的用户(Javascript)

时间:2015-09-18 18:52:38

标签: javascript authentication azure azure-mobile-services

我有一个Azure移动服务表,其中读取权限设置为"仅经过身份验证的用户"。

我按照https://azure.microsoft.com/en-us/documentation/articles/mobile-services-html-get-started-users/中的示例操作,并使用以下代码验证用户:

    function logIn() {
    client.login("microsoftaccount").done(function (results) {
        console.log(results);
        //save auth data to local storage
        sessionStorage.loggedInUser = JSON.stringify(client.currentUser);

        //route to the next page based on the type of user that is logged  in
        getUserByUserID();
    }, function (err) {
        alert("Error: " + err);
    });
}

在用户通过身份验证后,我将client.currentUser信息存储在本地计算机上的sessionStorage中。然后我导航到另一个网页,在那里我创建了一个MobileServiceClient的新实例,并从之前提到的sessionStorage更新了客户端变量的currentUser变量。我使用以下代码来执行此操作:

//load the session data into the client object
if (sessionStorage.loggedInUser) {
    client.currentUser = JSON.parse(sessionStorage.loggedInUser);
    console.log("getting stored user: " + JSON.parse(sessionStorage.loggedInUser));
}

然而,我得到了一个" 401:未经授权的错误"尝试使用以下代码从表中读取时:

var query = client.getTable("towingProfiles").read().done(function (results) {
    console.log(JSON.stringify(results));
    _.each(results, function(towingProfile){
        towingProfiles.add(towingProfile);
    })
}, function (err) {
    alert("Error: " + err);
});

我不确定为什么这不起作用,并希望得到任何帮助。

1 个答案:

答案 0 :(得分:0)

问题是我在制作MobileServiceClient时没有设置正确的应用程序密钥。