首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Sails.js的passport-local策略中重置密码

如何在Sails.js的passport-local策略中重置密码
EN

Stack Overflow用户
提问于 2015-06-26 21:57:20
回答 1查看 2.5K关注 0票数 5

Passport.js在Node.js中提供了身份验证框架。它只处理身份验证。

现在我想启用密码重置。由于用户模型中没有密码字段,只有passports字段,如何在passport-local策略中重置密码?我假设用户需要生成一个新密码,并调用一些东西来覆盖旧密码的现有散列。这些方法是什么?我在哪里可以找到它们?

EN

回答 1

Stack Overflow用户

发布于 2015-06-26 22:11:56

当用户选择重置其密码时,您可以执行的操作是向该用户发送一封电子邮件,其中包含一个包含与该用户关联的令牌的链接。一旦用户单击了链接,您就可以根据令牌和电子邮件验证用户,然后显示重置密码HTML。一旦用户输入了新密码,在后台代码中,您可以在散列后在User对象上设置密码,然后保存密码。您也可以将令牌设置为null。

使用base64的示例代码如下所示

代码语言:javascript
复制
user.salt = new Buffer(crypto.randomBytes(16).toString('base64'), 'base64');
user.password = user.hashPassword('newPassword');   
user.token = undefined;
user.save(...)

hashPassword方法如下所示。

代码语言:javascript
复制
UserSchema.methods.hashPassword = function(password) {
    if (this.salt && password) {
        return crypto.pbkdf2Sync(password, this.salt, 10000, 64).toString('base64');
    } else {
        return password;
    }
};

上面的代码是用Yeoman自动生成的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31075130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档