2016-08-22 5 views
1

私は2つの流星アプリを持っています。サーバーアプリケーションとクライアントアプリケーション。私はこの機能を使用してサーバーにログオン:DDP.loginWithPassword経由でMeteor.jsアプリを接続すると、Meteor.user()は定義されていません

クライアント:サーバーアプリで

DDP.loginWithPassword(ddp.getConnection(), {email: '[email protected]'}, 'myPasswort', function (error, result) { 
     if (error) 
     return alert(error); 
     Meteor.call('showLogin'); 
    }); 

私は私がログインしてることを私に示して方法を持っている

Meteor.methods({ 
showLogin: function() { 
    console.log(Meteor.user()); 
    } 
}); 

限り。すべて動作しますが、クライアントアプリケーションのMeteor.user()は未定義ですか?

なぜ、どのように問題を解決できますか?

+0

Angular 2を使用している場合、コンポーネントに '@InjectUser( 'user')'を追加しましたか? – JeanMel

+0

私は角度1を使用しますが、同義語はありますか? – laren0815

+0

私は分かりませんが、彼らの[チュートリアル](http://www.angular-meteor.com/tutorials/socially/angular1/user-accounts-authentication-and-permissions)では 'import {Meteor}から'流星/流星';そしてそれは仕事をする。 – JeanMel

答えて

0

アカウントとユーザーの人数について次の行を追加してから、userIdを取得してみてください。

Accounts.connection = Meteor.remoteConnection; 

Meteor.userIdはMeteor.user()の代わりに機能します。これは、DDPログインパッケージでは、一度ログインすると、コールバックはuser()関数ではなくuserIDのみを設定するためです。

ddp-login.js connection.setUserId(result.id);

関連する問題