Articles of bcrypt

无法通过护照和bcryptlogin时对用户进行身份validation

所以我正在尝试为我的网站创build一个注册/login逻辑,使用passport和bcrypt-nodejs进行密码散列。 我成功地注册了一个用户,但是在login时,我总是进入'false'分支进行密码validation,并且正在获取我的控制台消息'错误的密码'这里是我的login护照代码: passport.use('user-local-login', new LocalStrategy({ // by default, local strategy uses username and password, we will override with email usernameField : 'email', passwordField : 'password', passReqToCallback : true }, function(req, email, password, done) { // callback with email and password from our form // find a user whose email is the same as the forms […]

问题与bcrypt.compare()

这个方法总是返回undefined。 它应该返回true或false。 但事实并非如此。 有人能帮我解决吗? connection.query('SELECT newpwd FROM userinfo WHERE username = ? ', param.username, function(err, hash, fields) { console.log("Db loaded hash :" + hash); if (err) return callback(err); else if (!hash.length) { return callback(err); } else { bcrypt.compare("abcdef", hash, function(err, result) { console.log(param.password); console.log(result); if (result == true) { console.log(param.password); console.log("Login hash :" + hash); […]

无法读取未定义的属性'then',bcrypt.hash()

我试图创build一个testing用户,在我需要散列密码的摩卡testingbefore块。 显然,如果使用promise,则不需要done()函数 。 我正在执行bcrypt.hash就像它在bcrypt文档中所说: before(function(){ //create a user and populate user's first recipes //create a User object return bcrypt.hash('newt', 10).then(function(err,hash){ //create the user object var user = new User({email:'test@test.io',username:'test',password:hash}) //save that user user.save() }) }) 但是,当我运行testing时,它给了我一个错误: TypeError: Cannot read property 'then' of undefined 是什么赋予了? 谢谢。

无论密码如何,Bcrypt-NodeJS compare()都会返回false

我知道这个问题已经被问了几次(就像在这里 , 在这里或那里 ,甚至是在Github上 ,但是没有一个答案真的对我有用 … 我正在尝试使用Mongoose和Passport为NodeJS应用程序开发身份validation,并使用Bcrypt-NodeJS来哈希用户的密码。 在我决定重构用户模式并使用bcrypt的asynchronous方法之前,所有工作都没有任何问题。 在创build新用户时,哈希仍然有效,但现在我无法validation存储在MongoDB中的哈希密码。 我知道什么? bcrypt.compare()总是返回false无论密码是否正确,以及任何密码(我试过几个string)。 密码只有一次散列(所以散列不重新散列)在用户的创build。 给比较方法的密码和散列是正确的顺序。 密码和哈希types是“string”。 存储在数据库中时不会截断哈希(长度为60个字符的string)。 数据库中提取的哈希与用户创build时存储的哈希相同。 码 用户架构 有些领域已经被剥离,以保持清楚,但我保留了相关的部分。 var userSchema = mongoose.Schema({ // Local authentication password: { hash: { type: String, select: false }, modified: { type: Date, default: Date.now } }, // User data profile: { email: { type: String, required: true, unique: […]

密码不被brcypt模块散列

我使用nodejs“bcrypt”模块散列密码。 这是我的散列函数… 在这里我打电话给我的function 但是在数据库中密码不是保存的。 在数据库字段是空的,每当我注册。 我该如何解决它? 这是数据库logging

login后无法正常工作

我试图用bcrypt来validation用户的密码。 但是,不幸的是,我的后请求不起作用,它只是加载了很长时间,就是这样。 我有这个代码的模型user.js: UserSchema.methods.comparePasswords = function (password) { return bcrypt.compare(password, this.password); }; 而我有一个控制器auth.js与此代码: export const signin = async (req, res, next) => { const { login, password } = req.body; const user = await User.findOne({ login }); if (!user) { return next({ status: 400, message: 'User not found' }); } try { const result = […]

了解Heroku在部署Nodejs应用程序时在日志中encryption错误

我正在尝试将我的node.js应用程序部署到Heroku。 它在本地工作完全正常,但是当我尝试部署它,我不断得到这个: 2017-12-12T17:32:18.220591+00:00 app[web.1]: > ev@1.0.0 start /app 2017-12-12T17:32:18.220592+00:00 app[web.1]: > node app.js 2017-12-12T17:32:18.220592+00:00 app[web.1]: 2017-12-12T17:32:18.898850+00:00 heroku[web.1]: Process exited with status 1 2017-12-12T17:32:18.910740+00:00 heroku[web.1]: State changed from starting to crashed 2017-12-12T17:32:18.819322+00:00 app[web.1]: module.js:664 2017-12-12T17:32:18.819338+00:00 app[web.1]: return process.dlopen(module, path._makeLong(filename)); 2017-12-12T17:32:18.819339+00:00 app[web.1]: ^ 2017-12-12T17:32:18.819339+00:00 app[web.1]: 2017-12-12T17:32:18.819340+00:00 app[web.1]: Error: /app/node_modules/bcrypt/lib/binding/bcrypt_lib.node: invalid ELF header 2017-12-12T17:32:18.819341+00:00 app[web.1]: at Object.Module._extensions..node (module.js:664:18) […]

在WebFaction上的BCrypt Node.Js不安装

我的Node.Js应用程序依赖于bcrypt。 它在我的本地服务器上工作正常,但是当我closuresWebFaction服务器的存储库时 ,bcrypt似乎并不想安装(或编译?)在那里。 我试了两个npm安装 (它在packages.json依赖项中列出)以及 npm install bcrypt 但没有一个工作,我得到以下types的错误: make: Entering directory `/home/noduslabs/webapps/infranodus/infranodus/node_modules/bcrypt/build' CXX(target) Release/obj.target/bcrypt_lib/src/blowfish.o CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt.o CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt_node.o ../src/bcrypt_node.cc: In function 'v8::Handle<v8::Value><unnamed>::GenerateSalt(const v8::Arguments&)': ../src/bcrypt_node.cc:257: error: invalid conversion from 'void (*)(uv_work_t*)' to 'void (*)(uv_work_t*, int)' […] make: *** [Release/obj.target/bcrypt_lib/src/bcrypt_node.o] Error 1 make: Leaving directory `/home/noduslabs/webapps/infranodus/infranodus/node_modules/bcrypt/build' gyp ERR! build error gyp ERR! stack Error: `make` failed […]

节点bCrypt.compareSync

我正在创build一个用户login。 我可以让用户注册,当用户在密码保存到数据库之前对密码进行了encryption。 当同一个用户尝试login时,我得到一个“无效的密码”。 这是因为它将用户input与数据库中的encryption密码进行比较。 例如,如果密码是1234,那么在数据库中它被保存为“$ 2a $ 104 $ 0301”。 当用户尝试login时,将“1234”的用户input与“2a $ 104 $ 0301”进行比较。 我将如何解决? 这是我的login代码: var LocalStrategy = require('passport-local').Strategy; var User = require('../Models/users.js'); var bcrypt = require('bcrypt-nodejs'); module.exports = function(passport){ passport.use('login', new LocalStrategy({ passReqToCallback : true }, function(req, username, password, done){ User.findOne({'username' : username}, function(err, user){ if(err) return done(err); if(!user){ console.log('User Not Found […]

在Sails.js中更新用户模型时密码被更改

/** * User.js * * @description :: TODO: You might write a short summary of how this model works and what it represents here. * @docs :: http://sailsjs.org/#!documentation/models */ var bcryptjs = require('bcryptjs'); function hashPassword(values, next) { bcryptjs.hash(values.password, 10, function(err, hash) { if (err) { return next(err); } values.password = hash; next(); }); } module.exports […]