web-dev-qa-db-ja.com

MeteorJSアプリでユーザーのメールアドレスにアクセスする

Meteorを使用してアプリを作成していますが、ログインしているユーザーの保存されているメールアドレスにアクセスする必要があります。

私は現在使用しています:

var userObj = Meteor.user();
console.log(userObj);

ユーザーにアクセスします。ただし、IDにしかアクセスできません。電子メールアドレスは、次のようなネストされたオブジェクトに保存されます。

[Object {address="[email protected]", verified=false}]

JSONオブジェクトをトラバースするさまざまな方法を試しましたが、必要な値にアクセスする方法がわかりません。

17
squeezemylime

Meteor.user().emails[0].addressは私のために働きます。

ドキュメントの内容は次のとおりです。

デフォルトでは、サーバーはユーザー名、電子メール、およびプロファイルを公開します。ユーザードキュメントで使用されるフィールドの詳細については、 Meteor.users を参照してください。

ユーザードキュメントの例:

{
  _id: "bbca5d6a-2156-41c4-89da-0329e8c99a4f",  // Meteor.userId()
  username: "cool_kid_13", // unique name
  emails: [
    // each email address can only belong to one user.
    { address: "[email protected]", verified: true },
    { address: "[email protected]", verified: false }
  ],
  createdAt: 1349761684042,
  profile: {
    // The profile is writable by the user by default.
    name: "Joe Schmoe"
  },
  services: {
    facebook: {
      id: "709050", // facebook id
      accessToken: "AAACCgdX7G2...AbV9AZDZD"
    },
    resume: {
      loginTokens: [
        { token: "97e8c205-c7e4-47c9-9bea-8e2ccc0694cd",
          when: 1349761684048 }
      ]
    }
  }
}
35
Dave

ユーザーを認証する方法を指定しません。たとえば、Google認証のみを使用している場合、メールアドレスは次の場所にのみ表示されます。

Meteor.user().services.google.email

だから、それは異なります。

5
David Wihl

これを試して:

Meteor.user()。emails [0] .address

よろしく、

3
Ruben