gpt4 book ai didi

node.js - 在 Mocha ExpressJS 测试期间获取 "Error: the string "不是有效的 BCrypt 哈希 ."was thrown, throw an Error :)"

转载 作者:搜寻专家 更新时间:2023-10-31 22:24:39 25 4
gpt4 key购买 nike

我有一个使用 Passport 进行身份验证的 MEAN 堆栈应用。

我正在尝试编写一个单元测试来登录并检查您是否被重定向到根 (/)。但是,每当我运行 Mocha 时,我都会收到以下错误消息:

1) POST /home Login test should redirect to / after login:
Error: the string "Not a valid BCrypt hash." was thrown, throw an Error :)

这是我的单元测试 LoginSpec.js:

var should = require("should");
var app = require("../app");
var mongoose = require("mongoose");
var User = mongoose.model("User");
var request = require("supertest");
var agent = request.agent(app);
...
describe('POST /home', function() {
before(function(done) {
user = new User({
email: "john@email.com",
firstName: "John",
lastName: "Doe",
password: "strongPassword",
username: "johndoe"
});

user.save(done);
})

describe('Login test', function() {
it ('should redirect to / after login', function(done) {
agent.post('/login')
.send({
username: 'johndoe',
password: 'strongPassword'
})
.end(function(err, res) {
done();
})
})

after(function(done) {
User.remove().exec();
return done();
})
})
})

我需要BCrype我的密码吗?如果是这样,我该怎么做?

另外,为什么我看到的一些在线登录示例没有做到这一点?如NodeJS/Passport - Testing user login with mocha and superagentHow to authenticate Supertest requests with Passport?

最佳答案

发生这种情况是因为您在数据库中的密码字段只有一个字符串,而不是散列字符串。

它必须像 $2a$08$LMXAGOARNn4XmnC/rQuhfujrWVwgK/RuHuGpLtXvcv/yruY1v3yXa 但可能只是原始密码。

关于node.js - 在 Mocha ExpressJS 测试期间获取 "Error: the string "不是有效的 BCrypt 哈希 ."was thrown, throw an Error :)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30877240/

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