Tag: passport local

bcrypt-nodejs.compare总是返回false

我正在使用node.js,bcrypt,sequelize和passport设置login,我已经在线查看了文档,但由于某种原因,即使知道密码匹配,.compare函数也总是返回false。 在我的模型中,我添加了一个beforCreate钩子来encryption密码: beforeUpdate: function(user, options, fn) { encryptPassword(user, options, fn); } encryptPassword函数: encryptPassword = function(user, options, fn) { if (!user.changed('password')) return fn(); bcrypt.hash(this.password, null, null, function(err, hash) { if (err) return fn(err); user.password = hash; fn(); }); } 我的控制器在哪里创build用户: User .create({ username: req.body.username, password: req.body.password }) .then(function() { res.json({ message: 'New beer drinker added to […]

Nodejs – Passport身份validation始终返回失败redirect

我正在通过passportJs进行表单login,它总是返回failureRedirect。 我有这个问题在堆栈溢出search,但仍然没有正确的答案。 这是我的代码: 表格制作玉石: form(method='post', action='/users/login', enctype='multipart/form-data') .form-group label Username input.form-control(name='username', type='text' placeholder='Enter Username') .form-group label Password input.form-control(name='password', type='password' placeholder='Enter password') input.btn.btn-default(name='submit', type='submit', value='Login') 路由器Hanlde使用expression式框架formsNodejs和护照中间件: passport.serializeUser(function(user, done) { done(null, user.id); }); passport.deserializeUser(function(id, done) { User.getUserById(id, function(err, user) { done(err, user); }); }); passport.use(new LocalStrategy({ usernameField: 'username', passwordField: 'password' }, function(username, password, done) { User.getUserByUsername(username, function(err, […]

护照js本地authentication使用sequelize

我正尝试使用护照本地身份validation与sequ​​elize。 当我提交login表单时,请求/响应周期永不结束,terminal中没有错误信息。 这里是我所有的代码: app.js var Sequelize = require('sequelize'), express = require('express'), bodyParser = require('body-parser'), cookieParser = require('cookie-parser'), passport = require('passport'), LocalStrategy = require('passport-local').Strategy, User = require('./models/users'); …….. and other imports….. //route import , model injection var auth = require('./routes/auth')(User); ………………….. app.use(session({ store: new RedisStore(), secret: 'keyboard cat', resave: false, saveUninitialized: false })); app.use(passport.initialize()); app.use(passport.session()); passport.serializeUser(function(user, […]

PassportJS(Local)与Sequelize和Express在序列化用户之后挂起

我正在尝试使用我在http://code.tutsplus.com/tutorials/authenticating-nodejs-applications-with-passport-cms-21619中find的教程进行login工作。 我修改了代码以使用Sequelize。 我能够validation用户名和密码,但序列化一个用户后,它redirect到的页面不会加载。 我想知道是否有什么我错过了。 我没有真正得到一个错误,但redirect到/testing/主页卡在悬而未决,并不断执行一个职位请求。 它似乎并没有运行req.isAuthenticated() Executing (default): SELECT "id", "email", "username", "password" FROM "users" AS "user" WHERE "user"."username" = 'user14' LIMIT 1; username and password matched serializing user: POST /test/login 302 377.738 ms – 64 Executing (default): SELECT "id", "email", "username", "password" FROM "users" AS "user" WHERE "user"."id" = 16; GET /test/home – – […]

节点护照邀请策略

我正在创build一个多用户的应用程序,只有pipe理员可以通过邀请添加新用户。 我看护照,但没有看到实施一种“邀请策略”(类似于RoR的devise)的方式; 有任何想法吗 ?

防止用户再次loginpassportjs,如果他们被authentication一次?

我正在使用PassportJS,注册和loginfunction工作相当顺利。 我唯一遇到的问题是PassportJS(我正在使用会话),即使用户已经login,他们可以再次返回到注册/loginurl,并进行注册和/或login! 这是诱惑我。 如果有人有修正/build议,请放下。 更新 – 1 一瞥我的routes.js :(使用PassportJS以及routes.js -ensure-login。 app.get('*', function(req, res, next) { if (req.url.indexOf('/users/login') < 0 && req.url.indexOf('/users/signup') < 0) { req.session.returnTo = null; } next(); }); // ===================================== // HOME PAGE (with login links) ======== // ===================================== app.get('/', sabSettings, function(req, res) { Setting.findOne(function(err, setting) { if (err) throw err; // console.log(setting); […]

如何正确调用passport.js函数与快速路由器?

我试图调用passport.authenticate函数作为对我的注册视图发布请求的响应。 我一直在这里按照这个教程 ,让我的头围绕passport.js和expression,但已经完成指令的第一页,并做了必要的修改express.js 4.0每一页我尝试访问返回错误500,并显示以下stacktrace : TypeError: Object #<serverResponse> has no method 'authenticate' at module.exports (/home/myUserName/Desktop/manufacturing/routes/index.js:66:37) at Layer.handle [as handle_request] (/home/myUserName/Desktop/manufacturing/node_modules/express/lib/router/layer.js:82:5) at trim_prefix (/home/myUserName/Desktop/manufacturing/node_modules/express/lib/router/index.js:302:13) at /home/myUserName/Desktop/manufacturing/node_modules/express/lib/router/index.js:270:7 at Function.proto.process_params (/home/myUserName/Desktop/manufacturing/node_modules/express/lib/router/index.js:321:12) at next (/home/myUserName/Desktop/manufacturing/node_modules/express/lib/router/index.js:261:10) at /home/myUserName/Desktop/manufacturing/node_modules/connect-flash/lib/flash.js:21:5 at Layer.handle [as handle_request] (/home/myUserName/Desktop/manufacturing/node_modules/express/lib/router/layer.js:82:5) at trim_prefix (/home/myUserName/Desktop/manufacturing/node_modules/express/lib/router/index.js:302:13) at /home/myUserName/Desktop/manufacturing/node_modules/express/lib/router/index.js:270:7 这里是/routes/index.js的代码: var express = require('express'); var bodyParser = require('body-parser'); var router = […]

在post API中redirect错误

我正在使用node.js restify和passport模块,restify-ensure-login模块执行用户loginauthenticationfunction。 https://www.npmjs.com/package/restify-ensure-login 这里是相关的代码; var passport = require('passport'); var Strategy = require('passport-local').Strategy; passport.use(new Strategy( function(username, password, cb) { db.users.findByUsername(username, function(err, user) { if (err) { return cb(err); } if (!user) { return cb(null, false); } if (user.password != password) { return cb(null, false); } return cb(null, user); }); })); passport.serializeUser(function(user, cb) { cb(null, user.id); }); […]

了解PassportJS中的完成function

我正在尝试实现一个正常的login和注册模块,我很难理解done函数。 这里是我感觉负责完成function的行。 现在我想要做的就是返回相应的消息,如有一些服务器错误。 app.post('/user/auth/login', passport.authenticate('local-login'), function(req, res) { console.log("Login Request Successful"); if(req.user){ res.status(200).send(JSON.stringify({ 'msg' : "Successfully logged in" })); } else{ res.status(400) } //console.log(req.user); }); 这是在loginPassport后将用户对象附加到请求模块的情况。 但是,如何区分服务器错误和身份validation失败错误 这是我的身份validation中间件。 passport.use('local-login', new LocalStrategy({ passReqToCallback: true }, function(req, username, password, done) { Users.findOne({ 'emailId': username }, function(err, user) { if (err) return done(err); if (!user) return done(null, false); […]

如果Passport身份validation失败,如何在redirect时保留表单数据?

我正在尝试使用护照在网页上对用户进行身份validation。 一切正常,除非身份validation失败,并且护照将用户redirect到同一个路由,则表单上的所有数据都将丢失。 有没有一种方法来保存数据并将其传回给表单。 我在routes.js中有以下内容 // ===================================== // SIGNUP ============================== // ===================================== // show the signup form app.get('/signup', function(req, res) { // render the page and pass in any flash data if it exists signup.isAuthenticated = req.isAuthenticated(); signup.user = req.user; signup.message = req.flash('signupMessage'); res.render('signup', signup); }); // process the signup form app.post('/signup', passport.authenticate('local-signup', { successRedirect : […]