7

次のような独自のユーザー作成フローがあります。

  1. ユーザーが初めて私のサイトにアクセスし、ボタンをクリックします。
  2. DB にユーザーを作成し、UID を使用して localStorage キーを設定します。
  3. 使用してデータを作成し、そのデータを DB に保存して UID に関連付けます。
  4. ユーザーが戻ってきて、localStorage に UID が設定されている場合は、以前に作成したデータを表示します。
  5. ユーザーは [登録] をクリックして「実際の」アカウントを作成できます。このアカウントから、ユーザー名とパスワード、または別のサービス (Facebook など) でログインする必要があります。

では、Meteor アカウントとユーザー モデルを使用してこれを達成するにはどうすればよいでしょうか。

手短に:

  • (ユーザーに関する) 情報なしでユーザー mongo ドキュメントを作成する必要があります。
  • UID (「パスワード」として機能) を持つだけでユーザーを認証する必要があります。
4

2 に答える 2

8
  1. onCreateUserランダムパスワードが使用される場合、「匿名」フィールド()を追加するために登録します。{anonymous:1}おそらく。で生成されMeteor.uuid()ます。
  2. タイムスタンプフィールド({created:new Date()})を追加して、古い匿名アカウントを削除します。
  3. 1時間以上前の匿名ユーザーを削除するなど、古い匿名ユーザーのメンテナンスを実行します。 Meteor.autorun(function() {Meteor.users.find({anonymous:1,$where:"new Date() - this.created > 360000"}).forEach(function (user) {
    Meteor.users.remove({_id:user._id})}});
  4. クライアントの場合:
    1. 常に「ニックネーム」の入力を求めます。これは公式のユーザー名になるか、永久に使用されるシステムに残ります。
    2. クライアントがログインしているかどうかを確認します。ログインしていない場合は、ニックネームと「マジックナンバー」パスワードを使用してログインするユーザーを作成します。ユーザーが[登録]をクリックしたら、上部に[登録]と入力しますが、実際にはパスワードを変更するだけです。$set:{anonymous:0}

localStorageを使用したり、UIDを使用したりしないでください。セッションCookieはあなたのUIDです。

于 2012-12-13T08:55:41.517 に答える
1

認証を支援する方法はわかりませんが、空白のUserオブジェクトを作成することに関しては、サーバー側で次のことを正常に実行しました(別の名前で...):

Meteor.users.insert({profile: {name: 'Oompa Loompa'}, foo: 'bar'});

于 2012-12-13T01:33:00.670 に答える