验证时返回URL

时间:2014-08-19 03:31:59

标签: meteor

设置验证邮件的返回网址的内容。不是生成并插入电子邮件中的链接,但是当您单击该链接时,它会在验证后最终转到您网站上的页面。如何设置它所访问的页面?

2 个答案:

答案 0 :(得分:1)

您可以通过指定Accounts.emailTemplates.verifyEmail.text来设置网址。这是一个例子:

Accounts.emailTemplates.siteName = 'MyApp';

Accounts.emailTemplates.from = 'me@example.com';

Accounts.emailTemplates.verifyEmail.subject = function() {
  return 'Verify your email address on MyApp';
};

Accounts.emailTemplates.verifyEmail.text = function(user, url) {
  var token = url.split('/').pop();
  var verifyEmailUrl = Meteor.absoluteUrl("verify-email/" + token);
  return verifyEmailEmailBody(verifyEmailUrl);
};

回调采用url参数,这是meteor生成的默认网址。您可以提取验证令牌,然后使用它来构建自定义URL。该函数需要返回一个正文字符串,您将通过实现verifyEmailEmailBody生成该字符串。

在客户端上,您需要设置相应的路线。运行路线后,您可以拨打Accounts.verifyEmail

答案 1 :(得分:0)

您可以更改电子邮件中使用的验证网址,然后自行处理该路线。在此,我会使用/verify并在成功时重定向到/wherever

<强>客户端

var match = window.location.pathname.match(/^\/verify\/(.*)$/);
var token;

if (match) {
  token = match[1];
}

Meteor.startup(function () {
  if (token) {
    Accounts.verifyEmail(token, function (error) {
      if (!error) {
        window.location.pathname = '/wherever';
      }
    });
  }
});

服务器

Accounts.urls.verifyEmail = function (token) {
  return Meteor.absoluteUrl('verify/' + token);
};