От новичка до гуру: Курсы программирования на CyberDuff

Правильный способ проверки электронной почты в Meteor

Я пытаюсь использовать функцию проверки электронной почты Meteor, следуя Meteor #20: Подтвердите адрес электронной почты с помощью учетных записей Meteor.

У меня есть несколько вопросов по шагам 3 и 4:

  1. На шаге 3 Accounts.sendVerificationEmail(user._id); не работает, а Accounts.sendVerificationEmail(user._id, user.emails[0].address); работает. Почему мне нужно указывать адрес электронной почты явно?

  2. Следует ли на шаге 4 изменить «Домашняя страница» в Template.Homepage.created = ... на имя шаблона моей домашней страницы?

  3. В документе Meteor 1.0.4 я не могу найти атрибут с именем «создан» в разделе «Template.myTemplate». Итак, если Template.Homepage.created = ... устарел? Правильно ли писать как Template.<myhomeTemplateName>.onCreated = ...?

  4. Это лучшее решение для проверки электронной почты?

23.03.2015

  • для шага 1 вы предоставили переменную среды MAIL_URL? 23.03.2015
  • @ajduke да, я добавил его с помощью process.env.MAIL_URL = 'smtp://... в функцию Meteor.startup. 23.03.2015

Ответы:


1
  1. #P1# <блочная цитата> #P2#
  2. да

  3. Из документов следует, что onCreated следует вызывать следующим образом:
    Template.HomePage.onCreated(function(){...});
23.03.2015

2

Для Метеора 1.0.5 используйте

Template.<yourTemplate>.onCreated(function() { ... })

вместо

Template.<yourTemplate>.created = ...

на шаге 4 Meteor #20: проверка электронной почты с учетными записями Meteor.

Демонстрация ниже отлично работает под Meteor 1.0.5.

проверитьEmail.html:

<head>
  <title>Verify Email</title>
</head>

<body>
  <h1>Sending Email Demo</h1>
  {{> loginButtons}}
</body>

verifyEmail.js: (замените имя пользователя, пароль и значение сервера для вашего случая)

if (Meteor.isClient) {
  Template.SendAnyEmail.onCreated(function() {
    if (Accounts._verifyEmailToken) {
      Accounts.verifyEmail(Accounts._verifyEmailToken, function(err) {
        if (err != null) {
          if (err.message = 'Verify email link expired [403]') {
            console.log('Sorry this verification link has expired.')
          }
        } else {
          console.log('Thank you! Your email address has been confirmed.')
        }
      });
    }
  });
}

if (Meteor.isServer) {
  Meteor.startup(function () {
    smtp = {
      username: '[email protected]',
      password: 'password',
      server: 'mail.example.com',
      port: 465
    };

    process.env.MAIL_URL = 'smtp://' + encodeURIComponent(smtp.username) + ':' + encodeURIComponent(smtp.password) + '@' + encodeURIComponent(smtp.server) + ':' + smtp.port;

    Accounts.emailTemplates = {
      from: 'Administrator <[email protected]>',
      siteName: 'YourSite',
      verifyEmail: {
        subject: function(user) {
          return 'Verification email from Example.com';
        },
        text: function(user, url) {
          return 'Hi,\n' +
            'Please open the link below to verify your account on Example.com:\n' + url;
        }
      }
    };
  });

  Accounts.onCreateUser(function(options, user) {
    Meteor.setTimeout(function() {
      Accounts.sendVerificationEmail(user._id);
    }, 2 * 1000);
    return user;
  });
}
30.03.2015

3

В вашем server/main.js просто установите где-нибудь за пределами блока Meteor.startup.

Accounts.config({
    sendVerificationEmail: true
});
06.02.2019
Новые материалы

Представляем Narwhal Technologies (Nrwl)
6 декабря 2016 г. Маунтин-Вью, Калифорния С тех пор, как Виктор Савкин и я (Джефф Кросс) присоединились к команде Angular в Google на заре Angular 1, Angular продемонстрировал феноменальный..

Путь AWS  — «Изучение машинного обучения — 10 начинающих ИИ и машинного обучения на AWS».
Универсальный ресурсный центр для изучения искусственного интеллекта и машинного обучения. НОЛЬ или ГЕРОЙ, начните свое путешествие здесь. Получите решения и пройдите обучение у экспертов AWS...

5 простых концепций Python, ставших сложными
#заранее извините 1) Переменные x = 4 y = 5 Переменная в Python — это символическое представление объекта. После присвоения некоторого объекта переменной Python мы приобретаем..

«Освоение вероятности: изучение совместной, предельной, условной вероятности и теоремы Байеса —…
Виды вероятности: Совместная вероятность Предельная вероятность Условная вероятность Диаграмма Венна в вероятностях: В “Set Theory” мы создаем диаграмму Венна...

Основы Spring: Bean-компоненты, контейнер и внедрение зависимостей
Как лего может помочь нашему пониманию Когда мы начинаем использовать Spring, нам бросают много терминов, и может быть трудно понять, что они все означают. Итак, мы разберем основы и будем..

Отслеживание состояния с течением времени с дифференцированием снимков
Время от времени что-то происходит и революционизирует часть моего рабочего процесса разработки. Что-то более забавное вместо типичного утомительного и утомительного процесса разработки. В..

Я предполагаю, что вы имеете в виду методы обработки категориальных данных.
Я предполагаю, что вы имеете в виду методы обработки категориальных данных. Пожалуйста, проверьте мой пост Инструментарий специалиста по данным для кодирования категориальных переменных в..