gpt4 book ai didi

meteor :以编程方式生成密码重置 token ?

转载 作者:行者123 更新时间:2023-12-02 01:12:41 24 4
gpt4 key购买 nike

在 Meteor 中,您如何以编程方式为用户生成/存储重置密码 token (在用户自己在 UI 中请求它的上下文之外)?

我正在发送一封自定义电子邮件,并希望在其中嵌入我自己的“重置密码”按钮。这需要我自己生成一个有效的重置密码 token 。

是否有任何我不知道的未记录的帐户功能/助手可以帮助我实现这一目标?谢谢!

最佳答案

对于大多数情况,我建议使用内置的 Accounts.sendResetPasswordEmail用于发送电子邮件并覆盖 Accounts.emailTemplates.resetPassword对电子邮件进行自定义。例如,您可以像这样执行自定义重置链接:

Accounts.emailTemplates.resetPassword.html = (user, url) =>
`<a href="${url}" style="{ something cool... }">Reset your password</a>`;

但是,如果您需要比这更多的可定制性,则没有用于创建重置 token 的现成函数,但是如果您查看 source code for Accounts.sendResetPasswordEmail ,您会发现实际上您只需要在用户对象的 services.password.reset 字段中插入一个对象,如下所示:

var token = Random.secret();
var when = new Date();
var tokenRecord = {
token: token,
email: email,
when: when,
reason: 'reset'
};
Meteor.users.update(userId, {$set: {
"services.password.reset": tokenRecord
}});

var resetPasswordUrl = Accounts.urls.resetPassword(token);

现在您可以用任何您喜欢的方式向您的用户发送 resetPasswordUrl,它应该可以工作。但要注意安全性 - 我认为缺少用于生成密码重置 token 的现成函数是有意为之,旨在阻止人们粗心地创建密码重置方法。

关于 meteor :以编程方式生成密码重置 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44375768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com