我正在构建一个Meteor应用程序并使用oaf:accounts-entry
包来处理我的用户注册和认证。我正在研究重置密码功能。但是,当我点击“电子邮件重置密码链接”时,应用程序不会向我发送任何电子邮件。有人可以帮助我或指导我如何为oaf:accounts-entry
包配置重置密码功能吗?在进行谷歌搜索后,我找不到有关如何配置它的说明。我安装的相关软件包是:
oaf:accounts-entry
accounts-password
email
谢谢!
答案 0 :(得分:0)
密码重置功能应该像软件包一样提供。
您是否正确配置了电子邮件smtp设置并测试了您的应用是否正确发送了电子邮件?
https://gentlenode.com/journal/meteor-3-smtp-configuration/5
答案 1 :(得分:0)
注意:使用Meteor JS 1.6.1.1,所需的软件包为 accounts-ui,accounts-password
要在窗口小部件的注册/签名中显示忘记密码链接,您需要在位置ROOT_FOLDER/client/main.js
的文件中添加少量配置。代码如下,
Accounts.ui.config({
passwordSignupFields: "USERNAME_AND_EMAIL"
});
如果您未选择passwordSignupFields: "USERNAME_AND_EMAIL"
并选择passwordSignupFields: "USERNAME_ONLY"
之类的内容,则无法在注册小部件中看到忘记密码选项。 (没有人会告诉你这个,我自己发现了这个奇怪的场景。不过,我想知道为什么MDG团队会这样做?)
在服务器端,您还需要在PROJECT/server/main.js
之外的位置Meteor.startup(()=>{});
添加一些代码,以提供重置密码链接的电子邮件模板。以下是您自己调整某些属性所需的代码。
var username = 'you_id@gmail.com';
var password = 'your password';
var server = 'smtp.gmail.com';
var port = '465';
process.env.MAIL_URL = 'smtps://' +
encodeURIComponent(username) + ':' +
encodeURIComponent(password) + '@' +
encodeURIComponent(server) + ':' + port;
process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0;
Accounts.emailTemplates.from = 'support_team@yourappname.com';
Accounts.emailTemplates.siteName = 'APP NAME';
Accounts.emailTemplates.resetPassword = {
subject(user) {
return "Reset Password Link.";
},
text(user, url) {
return `Hello!
Click the link below to reset your password.
${url}
If you didn't request this email, please ignore it.
Thanks,
APP Team.
`
},
html(user, url) {
// This is where HTML email content would go.
// See the section about html emails below.
}
};
第1步:
看看您是否能够在注册小部件上查看忘记密码,如下所示。
第2步:
当您点击" 忘记密码"时,您应该能够在以下相同的小部件位置查看以下弹出窗口。
在有效的电子邮件条目中,您必须看到成功完整通知,最重要的是您必须收到重置密码链接的邮件,如下所示。
第3步:
当您点击该链接时,您可以看到一个带有弹出窗口的新窗口,如下所示(注意:您必须在给定令牌到期时间之前单击该链接。)
瞧!!!只需添加新密码即可自动登录到指定页面。如上所述,Meteor已经向我们提供了所有内容。你只需要配置这些东西并让它运行。