6

モバイル サービスに関するこのシリーズをフォローしていて、最新のチュートリアルの例を使用しています。たとえば、Windows Phone での登録とログインを実装したいと考えています。アプリケーションキーを持っている人なら誰でも許可を挿入できるように変更し、次のコードで新しいユーザーを挿入できます。

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

しかし、ログインユーザーを確認する方法がわかりませんか? トークンを取得するには?

4

1 に答える 1

5

あなたが参照した投稿は、Azure Mobile Services でカスタム API がサポートされていなかった昨年末に書かれたもので、ユーザー呼び出しに対してスクリプトを実行できる唯一の場所はテーブルでした。最近では、実際にはそのためにカスタム API を使用する必要があります。ここでは、2 つの API を定義できます。1 つはユーザー登録用で、もう 1 つはログイン用です。クライアントでは、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 に答える