我有一个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);
});
我不确定为什么这不起作用,并希望得到任何帮助。
答案 0 :(得分:0)
问题是我在制作MobileServiceClient时没有设置正确的应用程序密钥。