Может ли кто-нибудь указать правильный метод отправки проверки по электронной почте при создании пользователя? Это важная часть ...Meteor: Accounts.sendVerificationEmail поведение по настройке
a) Я хотел бы, чтобы у пользователя был немедленный доступ при регистрации. Но если пользователь еще не нажал кнопку клика по ссылке подтверждения в течение 48 часов, я бы хотел запретить им войти в систему, пока они не нажмут на ссылку.
Мой код до сих пор отправляет подтверждение по электронной почте, но у пользователя есть непрерывный доступ к приложению с кликом или без ссылки на ссылку для подтверждения (так что мой код, конечно, неполный).
client.js
Template.join.events({
'submit #join-form': function(e,t){
e.preventDefault();
var firstName= t.find('#join-firstName').value,
lastName= t.find('#join-lastName').value,
email = t.find('#join-email').value,
password = t.find('#join-password').value,
username = firstName.substring(0) + '.' + lastName.substring(0),
profile = {
fullname: firstName + ' ' + lastName
};
Accounts.createUser({
email: email,
username: username,
password: password,
userType: // 'reader' or 'publisher'
createdAt: new Date(),
profile: profile
}, function(error) {
if (error) {
alert(error);
} else {
Router.go('home');
}
});
}
});
server.js
Meteor.startup(function() {
process.env.MAIL_URL = 'smtp://postmaster.....';
Accounts.emailTemplates.from = "[email protected]";
Accounts.emailTemplates.sitename = "My SIte Name";
Accounts.emailTemplates.verifyEmail.subject = function(user) {
return 'Please confirm tour Email address' ;
},
Accounts.emailTemplates.verifyEmail.text = function(user, url) {
return 'Click on the link below to verify your address: ' + url;
}
Accounts.config({
sendVerificationEmail: true
});
Моя попытка была сделана за счет собственных показаний на метеорных документы и глядя на другого кода на SO. Я застрял. Спасибо за поддержку.
Чтобы быть справедливым 48-часовой льготный период не должен быть настолько строгим. Пока есть подтверждение с адресом электронной почты пользователей в какой-то момент. Я видел, что с Accounts.validateLoginAttempt существует «разрешенная» функция обратного вызова, которая возвращает либо true, либо false. Во-первых, можете ли вы показать мне, как установить LoginWithEmail. Я не понимаю, что он делает, когда пользователь нажимает на ссылку. +1 для методического подхода к вопросу, спасибо Steffo – meteorBuzz
Переделал ответ. Когда пользователь нажимает ссылку подтверждения (которая выглядит так: http: // localhost: 3000/#/verify-email/lots-of-funny-chars), создается шаблон 'login' и' Accounts.verifyEmail' захватывает смешные -chars и проверяет их (Meteor заботится об этом). – Steffo
Спасибо за ввод. Я буду применять этот код и дам вам знать, как скоро я поеду и проголосую. – meteorBuzz