15

新しい Meteor auth ブランチでは、サーバー側でユーザーを作成するにはどうすればよいですか?

への呼び出しでそれらをクライアント側で作成する方法がわかります

[Client] Meteor.createUser(options, extra, callback)

しかし、起動時に Meteor ユーザー コレクション レコードを作成したいとします。

たとえば、アプリケーションの起動/ブートストラップ中の管理者アカウント?

ありがとうスティーブ

4

7 に答える 7

22

meteor の新しいバージョンの使用について

  Accounts.createUser({
                            username: username,
                            email : email,
                            password : password,
                            profile  : {
                                //publicly visible fields like firstname goes here
                            }

    });

: パスワード ハッシュは自動的に生成されます

meteor の古いバージョンでは、次のように使用します。

1 - 注意:必要なパッケージがインストールされていますか?

  • mrt add accounts-base
  • mrt add accounts-password

meteor の一部のバージョンでは、Steeve が提案したように SRP パスワードソルトジェネレーターを呼び出すことができないため、これを試してください:

2 - Meteor.users.insert( ) を実行します

例えば

 var newUserId = 
 Meteor.users.insert({
         emails: ['peter@jones.com'],
         profile  : { fullname : 'peter' }
 });

: ユーザーは、ユーザー名または電子メール アドレスのいずれかを持っている必要があります。この例では電子メールを使用しました。

3 - 最後に、新しく作成したアカウントのパスワードを設定します。

      Accounts.setPassword(newUserId, 'newPassword');
      

于 2014-03-26T01:05:42.200 に答える
8

今のところ、これは meteor-core google グループで提案されています。

Meteor.users.insert({username: 'foo', emails: ['bar@example.com'], name: 'baz', services:     {password: {srp: Meteor._srp.generateVerifier('password')}}});

できます。起動/ブートストラップ中にテストしました。

私はこれを永続的または長期的な答えとは考えていません。なぜなら、auth ブランチはまだ大きな変化の中にあると信じており、Meteor の背後にあるチームが何らかの機能を提供すると思うからです。

したがって、長期的な答えとしてこれに依存しないでください。

スティーブ

于 2012-07-25T10:59:53.333 に答える
8

おそらく今ではよく知られている事実ですが、これを完了するために、authブランチでこれを行うための新しいサーバー API があります。authのドキュメントから:

" [Server] Meteor.createUser(options, extra) - ユーザーを作成し、初期パスワードを選択してアカウント登録を完了するためのリンクが記載された電子メールをそのユーザーに送信します

options 以下を含むハッシュ: email (必須)、username (オプション) extra: ユーザー オブジェクトの追加フィールド (名前など)。"

API は master ブランチにはまだないため、変更される可能性があることに注意してください。

于 2012-09-25T00:24:12.077 に答える
2

現時点では、あなたにはできないと思います。ランニング

Meteor.call('createUser', {username: "foo", password: "bar"});

近いですが、 in の実装はcreateUser成功時のpasswords_server.js呼び出しであり、クライアントが開始したメソッド呼び出しでない限り、サーバーで呼び出すことはできません ( .this.setUserIdsetUserIdlivedata_server.js

これはサポートする価値があるように思えます。おそらく、createUserユーザーをログインさせる の最後の 3 行は、loginメソッドの新しいブール値オプションによって制御する必要がありますか? 次に、使用できます

Meteor.call('createUser', {username: "foo", password: "bar", login: false});

サーバーのブートストラップ コードで。

于 2012-07-24T18:26:54.663 に答える
1

サーバー側からユーザーを作成する

    // Server method
    Meteor.methods({
      register: function(data) {
       try {
         console.log("Register User");
         console.log(data);
         user = Accounts.createUser({
           username: data.email,
           email: data.email,
           password: data.password,
           profile: {
             name: data.email,
             createdOn: new Date(),
             IsInternal: 0
           }
         });
         return {
           "userId": user
         };
       } catch (e) {
         // IF ALREADY EXSIST THROW EXPECTION 403
         throw e;
       }
     }
    });
    // Client call method
    Meteor.call('register',{email: "vxxxxx@xxxx.com",password: "123456"}, function(error, result){
      if(result){
       console.log(result)
      }
      if(error){
       console.log(result)
      }
    });
于 2016-10-28T12:33:20.380 に答える
0

Meteor バージョン 1.1.0.2 (サーバー側) の作業用の coffeescript の例:

userId = Accounts.createUser  
    username: 'user'
    email: 'user@company.com'
    password: 'password'
    profile:
      name: 'user name' 
user = Meteor.users.findOne userId 

profile.name をに追加してoptions例外が消える前に、この API が作業コードで「ユーザーは既に存在します」という例外を取得するのにしばらく苦労しました。

参照: Accounts.createUser(options,[callback])

于 2015-05-21T14:44:22.290 に答える