Fork me on GitHub

役立ちぬ開発史、それはただのブログ

覚えておくといい、ブログの時代は終わる。いつかその内、きっとたぶん…

Parseのユーザ周りの処理(パスワードのリセット・ユーザー検索・アソシエーション)

| Comments

JavaScriptガイドのUsersの中で、使ったことあるものは今回で全部です。使ったことあるのが少なくて、記事の内容が浅くなると何か嫌だったので、今回は使ったことないものも書いてます。ガイドには触ったことないですが、ブログに書いてない項目が少しあるので、それをやってからにしようか、ちょっと悩んでますが、ParseのUsersについては、ここでひと区切りをつけようと考えてます。(はたまた、書くかもしれません。)

パスワードのリセット

使ったことはないですが、Parseはパスワードのリセット処理が簡単に実装できます。

1
2
3
4
5
6
7
8
9
Parse.User.requestPasswordReset("email@example.com", {
  success: function() {
    // パスワードのリセットが成功
  },
  error: function(error) {
    // 失敗。エラーを見ましょう
    alert("Error: " + error.code + " " + error.message);
  }
});

パスワードをリセットする流れは、以下になるそうです。

  • ユーザがパスワードを忘れた場合、emailアドレスを入力し、パスワードのリセットを要求する。
  • Parseは、そのメールアドレスにパスワードをリセットするリンクを送る。
  • ユーザはそのリンクをクリックすると、新しいパスワードを入力できる。
  • パスワードを入力すると、新しいパスワードに変更される。

ユーザー検索

ユーザーの検索方法は簡単で、Parse.UserのParse.Queryを作ることで検索できます。
これは、地味によく活用してました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var query = new Parse.Query(Parse.User);
query.equalTo("username", "tester");  // ユーザー名がtesterを全部検索する
query.find({
    success: function(testers) {
        // 成功した場合の処理
        for(var key in testers){
            var test = testers[key];
        }
    },
    error:function(error) {
        // 失敗。エラーを見ましょう
        alert("Error: " + error.code + " " + error.message);vjju
    }
});

アソシエーション

これも使ったことはないです。
以下は、ドキュメントの例です。ブログなどのアプリで、ユーザーの新しいpostを保存して、ユーザーのpostsを全て検索する場合を想定しています。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var user = Parse.User.current();

// 新しいpostを作成
var Post = Parse.Object.extend("Post");
var post = new Post();
post.set("title", "My New Post");
post.set("body", "This is some great content.");
post.set("user", user);
post.save(null, {
  success: function(post) {
    // カレントユーザーのpostを全て検索
    var query = new Parse.Query(Post);
    query.equalTo("user", user);
    query.find({
        success: function(usersPosts) {
            // userPostsにカレントユーザーのpostが全て含まれている
        },
        error:function(error) {
            // 失敗。エラーを見ましょう
            alert("Error: " + error.code + " " + error.message);
        }
    });
  }
});
参考先:

Resetting Passwords(公式docs)
Querying(公式docs)
Associations(公式docs)
【Parse】ユーザの検索、ロールの検索方法

Comments