0

プログラムで少数のユーザーを追加し、そのうちの 1 人で meteor アプリにログインしたいと思います。サーバー側でユーザーを追加する方法が見つかりませんでした。そのため、クライアント側に2つのボタンを追加して、ユーザーを生成し、そのうちの1つでログインしました。ユーザーを作成できます (mogodb に表示されます) が、ログインできず、Error: Incorrect password [403] が表示されます。私は何が欠けていますか?これはclient.jsコードです

Template.hello.events({
 'click #createUsers': function () {
    console.log("Creating users...");
    var users = [
       { email: "dgra@gmail.com", username: "gra", name: "gra", roles: ['admin'] }
    ];
    _.each(users, function (user) {
        Accounts.createUser({
            email: user.email,
            password: "admin",
            profile: { username: user.username },
            profile: { name: user.name },
            roles: user.roles
        });
    });
},

 'click #logIn': function () {
     console.log("logIn gra...");
    Meteor.loginWithPassword("dgra@gmail.com", "admin", function (err) {
        if (err) {
            console.log("loginError: " + err);
        }
    });
 }
});
4

1 に答える 1

1

サーバー側でユーザーを追加する方法が見つかりませんでした

サーバーからユーザーを追加できます。ドキュメントが指摘するように、どこAccounts.createUserでも実行されます。これが実際の例です:

サーバー/initialize.js

var insertUser = function() {
  var user = {
    email: 'dgra@gmail.com',
    username: 'gra',
    name: 'gra'
  };

  Accounts.createUser({
    username: user.username,
    email: user.email,
    password: 'admin',
    profile: {
      name: user.name
    }
  });
};

Meteor.startup(function() {
  if (Meteor.users.find().count() === 0) {
    insertUser();
  }
});

いくつかのポイント:

  1. 追加できるプロファイル オブジェクトは 1 つだけです。
  2. Accounts.createUserドキュメントに示されている引数のみを受け取るため、任意のオブジェクトを追加することはできません。
  3. ロールを使用しようとしている場合、アカウントの作成後にロールが追加される例が示されています。
  4. 上記のコードでは、データベースにユーザーがいない場合にのみユーザーを追加します。meteor resetこれは、 (ボタンを押す必要がない)後にユーザーが自動的に挿入されるため、テストに便利です。
于 2013-10-26T16:30:13.963 に答える