Meteor,关于验证邮件的问题

时间:2014-01-11 07:37:38

标签: email meteor iron-router

我对发送验证邮件和弹出对话框有一些疑问。

  • 如何更改验证邮件内容?我必须用俄语添加文字
  • 用户注册后如何避免自动登录?如果未验证电子邮件地址,我想禁止用户登录。
  • 如何更改弹出式对话框的内容和样式,例如电子邮件验证?

我正在使用铁路由器,帐户 - * packages /

2 个答案:

答案 0 :(得分:15)

要更改验证邮件,请按以下网址使用的模板进行操作:https://github.com/meteor/meteor/blob/devel/packages/accounts-password/email_templates.js

自定义电子邮件模板

例如(取自上面的网址),有很多可定制的内容。

Accounts.emailTemplates.verifyEmail = {
   subject: function(user) {
      return "How to verify email address on " + Accounts.emailTemplates.siteName;
   },
   text: function(user, url) {
       var greeting = (user.profile && user.profile.name) ?
           ("Hello " + user.profile.name + ",") : "Hello,";
       return greeting + "\n"
              + "\n"
              + "To verify your account email, simply click the link below.\n"
              + "\n"
              + url + "\n"
              + "\n"
              + "Thanks.\n";
   }
}

如何避免在用户注册后自动登录

要注册,请不要在客户端使用Accounts.createUser。使用方法/调用将消息代理到服务器

客户端

Meteor.call("registerMe", username, password, function(err, result) {

});

服务器端:

Meteor.methods({
    registerMe: function(username, password) {
        return Accounts.createUser({username: username, password: password});
    }
});

如何更改弹出式对话框的内容和样式,例如电子邮件验证?

您可以通过从项目中删除accounts-ui并添加无样式的内容来自定义account-ui内容,然后单独添加样式

meteor remove accounts-ui
meteor add accounts-ui-unstyled
meteor add less

然后使用https://github.com/meteor/meteor/blob/devel/packages/accounts-ui/login_buttons.less中的.less文件进入您的项目并根据您的偏好进行自定义。

答案 1 :(得分:4)

Accounts.validateLoginAttempt(function(type){

    if(type.user && type.user.emails && !type.user.emails[0].verified )
        throw new Meteor.Error(100002, "email not verified" );
    return true;
});