简体   繁体   中英

Access user email address in Meteor JS app

I am building an app using Meteor and need to access the stored email address of a logged-in user.

I am currently using:

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

to access the user. However, I am only able to access the id. The email address is stored in a nested object that looks like this:

[Object {address="address@gmail.com", verified=false}]

I have tried various ways to traverse the JSON object but can't figure out how to access the value I need.

Meteor.user().emails[0].address works for me.

Here's what the doc says:

By default the server publishes username, emails, and profile. See Meteor.users for more on the fields used in user documents.

Example user document:

{
  _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: "cool@example.com", verified: true },
    { address: "another@different.com", 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 }
      ]
    }
  }
}

You don't specify how you are authenticating users. For example, if you were using Google authentication only, the email address would be found only in

Meteor.user().services.google.email

So, it depends.

Try this:

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

Regards,

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM