Tag: passport.js

PassportJsauthentication无限循环和执行(默认)查询

我正在尝试使用PassportJs和Sequelize构build身份validation系统。 我自己使用Sequelize制作了注册系统。 我只想使用PassportJS进行login。 它不会将我redirect到failureRedirect路由,对于SuccessRedirect也不会redirect,但是当提交表单时,它会进入无限循环,并在我的控制台中显示以下消息: Executing (default): SELECT `id`, `username`, `lastName`, `password`, `email`, `phone`, `createdAt`, `updatedAt` FROM `user` AS `user` LIMIT 1; 我的项目的结构是:users_model.js,index.js和users.js(控制器)。 我在我的index.js中的代码如下所示: //===============Modules============================= var express = require('express'); var bodyParser = require('body-parser'); var session = require('express-session'); var authentication= require('sequelize-authentication'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var passportlocal= require('passport-local'); var passportsession= require('passport-session'); var User […]

Passport身份validationReferenceError:用户未定义

我正在尝试为我的网站制作一个身份validation系统。 但是当试图用任何组合login时,我在网站上收到以下错误: ReferenceError: user is not defined user is not defined ReferenceError: user is not defined at Strategy._verify (/home/jarno/0__projects/nodejs/EasyOrders/routes/users.js:76:36) at Strategy.authenticate (/home/jarno/0__projects/nodejs/EasyOrders/node_modules/passport-local/lib/strategy.js:90:12) at attempt (/home/jarno/0__projects/nodejs/EasyOrders/node_modules… 在控制台中: POST /users/login 500 204.677 ms – 3063 events.js:160 throw er; // Unhandled 'error' event ^ Error: Can't set headers after they are sent. at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:356:11) at ServerResponse.header (/home/jarno/0__projects/nodejs/EasyOrders/node_modules/express/lib/response.js:719:10)… […]

护照js本地策略自定义callback显示用户为false和信息为“缺less凭据”

我正在使用Node.js,angularjs,快递和护照。 我尝试了所有我能想到的选项,但仍然没有解决scheme。 找不到来自其他post的解决scheme。 app.post('/login', function(req, res, next) { console.log(req.body.Email); console.log(req.body.Password); passport.authenticate('local', function(err, user, info) { console.log(err,user,info); … 在上面的req.body中显示正确的控制台,但在通行证validation显示空,虚假和信息作为缺less凭据。 我已经使用以下通行端口 passport.use(new LocalStrategy({ usernameField: 'Email' }, (Email, Password, done) => { console.log(Email, Password, done); User.findOne({ Email: Email.toLowerCase() }, (err, user) => { console.log(err); if (err) { return done(err); } if (!user) { return done(null, false, { msg: […]

如何持续访问用户是否在视图中进行身份validation

我试图限制用户使用passport.js作为身份validation中间件来访问快速应用程序中的内容。 我想这样做的方式是通过使用pug.js模板inheritance将所有受限视图加载到基本模板中的块: // All views extend this base template doctype html html head body h1 This is my base template if(authenticated) // Child templates overwrite this block with their content block content else // Otherwise, prompt user to log in a(href='/login') login 我读过,我可以访问res.locals保存在视图中的值,但这样的值是作用于该响应,我将不得不传递一个值,如“authenticated:true”到每个模板,我最终使用以上的方法。 有没有更好的方法来在所有视图中始终如一地访问会话数据而无需重复代码,或者更好的方法来限制快速应用程序中的用户访问? 感谢您的input。

React路由器截取到Express服务器的API调用

我使用React Router和Passport.js来设置Facebooklogin。 我已经设置了快速路线和护照configuration,但是每次我在客户端点击<a href="/api/auth/facebook">链接时,都会向RR提出请求,因为我的快速应用程序线: app.get('/*', function(req, res) { res.sendFile(path.resolve(__dirname, '../client', 'build', 'index.html')) }); 当我调用服务器端路由时,它返回这个错误: Warning: [react-router] Location "/api/auth/facebook" did not match any routes 我怎样才能绕过反应路由器这一个特定的路线? 我的user_routes.js文件如下所示: 'user strict'; var bodyparser = require('body-parser'); var User = require('../models/User.js'); module.exports = function loadUserRoutes(router, passport) { router.use(bodyparser.json()); router.get('/auth/facebook', passport.authenticate('facebook', { session: false, successRedirect: '/chat', failureRedirect: '/' })); router.get('/auth/facebook/callback', passport.authenticate('facebook', { […]

Passport.js本地策略不带mongoose

我试图find有关节点应用程序的最简单的login与护照资源。 我的意思是,使用: 中间件: app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: false})); app.use(cookieParser()); app.use(session({ secret: 'keyboard cat', resave: false, saveUninitialized: false })); app.use(passport.initialize()); app.use(passport.session()); app.use(express.static('public')); 护照: passport.serializeUser(function(user, done) { done(null, user.id); }); passport.deserializeUser(function(id, done) { done({ id: id, nickname: "test"}) }); passport.use(new LocalStrategy( function(username, password, done) { console.log("test"); if (username === 'username') { return done(null, { name: "test", id: '1234'}); } […]

Nodejs用户configuration文件和会话

目标是为我的Web应用程序构build一个用户configuration文件系统。 用户将能够login,维护会话并查看他的个人资料。 在网上阅读了各种教程后,我觉得有点失落。 每个人都使用不同的库,作为networking开发的新手,目前还不清楚每个库的function。 我已经看到使用了以下库,有人可以解释用户configuration文件交互的stream程以及每个库的位置吗? passport passport-local bcrypt-nodejs connect-flash express-session jsonwebtoken express-jwt morgan cookie-parser

使用Passport.js的login系统始终执行“failureRedirect”(nodejs)

我正在做一个教程,我卡在login区域。 当我使用Passport.jslogin时,它始终在validation中执行“failureRedirect”。 尝试debuggingreplacerouter.post('login')路由后,我收到以下消息: 错误:null用户:false信息:{“message”:“Missing credentials”} 在阅读一些论坛后,我认为这个问题可能与body-parser有关。 我一直在试图解决这个问题,但我还没有成功。 我会感激最有经验的node.js程序员的帮助。 该项目的结构是:app.js routes:users.js models:user.js user.js的 var express = require('express'); var router = express.Router(); var multer = require('multer'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var bodyParser = require('body-parser'); var User = require('../models/user'); var upload = multer({ dest: './uploads' }); // create application/json parser var jsonParser = bodyParser.json(); […]

Express在更改auth头时会创build不同的会话

我是新来expression,我试图创build会话时,用户login到我的应用程序。我正在使用护照进行身份validation。 要login用户,我正在创build基本策略和成功的基本策略我正在创build一个JWT令牌,我在客户端存储在cookie中,我使用JWT战略为随后的请求。 但我注意到,快速会话正在创build一个会话,当我login其中有基本标题和另一个会话为JWT标题的后续调用。 这里是我的代码,我login保存会话 signin = function(req, res, next) { passport.authenticate('basic', function(err, user, info) { if (err) { return next(err) } if (!user) { return res.status(401).json({ error: 'message' }); } var token = jwt.encode({ user: user}, config.db.secret); res.cookie('token', token, { maxAge: 900000, httpOnly: true, path: '\/', Secure: true }); res.status(200).json({ success: true, firstName: user.firstName }); […]

User.save到DB(使用mongoose)不是一个函数

UserModelVk.findOne({vkontakteId: profile.id}, function(err, vkUser){ if(err){ return done(err) } if(!vkUser){ const user = new UserModelVk({ vkontakteId: profile.id, name: profile.displayName, access_token: params.access_token }) user.save(function(err) { if (err){ log.error(err) } localStorage.setItem('username', user.vkontakteId); localStorage.setItem('key', user.access_token) return done(err, user); }); } else { vkUser = { access_token: params.access_token } vkUser.save(function(err) { if (err){ log.error(err) } localStorage.setItem('key', vkUser.access_token) return done(err, vkUser); […]