6

我正在关注这个关于移动服务的系列,我正在使用最新教程中的示例。例如,现在我想在 Windows Phone 中实现注册和登录。我更改为对具有应用程序密钥的任何人的插入权限,我可以通过以下代码插入新用户:

await accountTable.InsertAsync(new accounts() { Username = "admin", Password = "mypassword" });

但我不知道现在如何检查登录用户?如何获得令牌?

4

1 回答 1

5

您提到的帖子是在去年年底写的,当时 Azure 移动服务上不支持自定义 API - 您可以为用户调用执行脚本的唯一地方是在表上。如今,您实际上应该为此使用自定义 API - 您可以在其中定义两个 API - 一个用于注册用户,另一个用于登录。在客户端,当您调用 login 时,API 将验证用户名/密码,然后返回 Zumo 令牌(使用该博客文章中显示的脚本创建),然后客户端可以将其设置为对象的CurrentUser属性MobileServiceClient

类似于下面的代码:

var loginInput = new JObject();
loginInput.Add("userName", "theUserName");
loginInput.Add("password", "thePassword");
var loginResult = await client.InvokeApiAsync("login", loginInput);
client.CurrentUser = new MobileServiceUser((string)loginResult["user"]);
client.CurrentUser.MobileServiceAuthenticationToken = (string)loginResult["token"];

API 看起来像下面的代码:

exports.post = function(req, res) {
    var user = req.body.userName;
    var pass = req.body.password;
    validateUserNamePassword(user, pass, function(error, userId, token) {
        if (error) {
            res.send(401, { error: "Unauthorized" });
        } else {
            res.send(200, { user: userId, token: token });
        }
    });
}
于 2013-09-19T19:44:42.410 回答