Получить адрес электронной почты пользователя в приложении Meteor JS

17

Я создаю приложение, использующее Meteor, и вам нужно получить доступ к сохраненному адресу электронной почты зарегистрированного пользователя.

В настоящее время я использую:

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

для доступа к пользователю. Однако я могу получить доступ только к id. Адрес электронной почты хранится в вложенном объекте, который выглядит следующим образом:

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

Я пробовал различные способы прохождения объекта JSON, но не могу понять, как получить доступ к требуемому мне значению.

    
задан squeezemylime 22.12.2012 в 16:59
источник
  • userObj [0] .address, может быть? Я не уверен, переопределение JSON глупо> :( –  Ry-♦ 22.12.2012 в 17:00
  • haha ​​не работает, хотя ... отменяет неопределенные –  squeezemylime 22.12.2012 в 17:36

3 ответа

34

Meteor.user().emails[0].address работает для меня.

Вот что говорит doc:

  

По умолчанию сервер публикует имя пользователя, адрес электронной почты и профиль. Видеть    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 }
      ]
    }
  }
}
    
ответ дан Dave 22.12.2012 в 18:35
источник
5

Вы не указываете, как вы аутентифицируете пользователей. Например, если вы использовали только проверку подлинности Google, адрес электронной почты будет найден только в

Meteor.user().services.google.email

Итак, это зависит.

    
ответ дан David Wihl 23.12.2012 в 04:34
источник
  • Если у его консоли есть объект, который он разместил в OP, то он использует пароли учетных записей или что-то подобное, он просто не понял, как правильно обращаться к свойствам. –  Rahul 23.12.2012 в 21:11
3

Попробуйте следующее:

Meteor.user (). Электронная почта [0] .Address

Привет,     

ответ дан Ruben 24.02.2016 в 01:05
источник