Articles of 护照本地

在Passport-Mongoose-Local中使用Mongoose-Role

我试图添加一个用户在Passport-Mongoose-Local .register方法上的一个angular色,当我单击表单来触发该路由上的post时,它只是无限挂起,直到它丢弃连接。 我不知道为什么,但可能是因为在同一架构中使用2个不同的插件? server.js: `//package main dependencies const express = require('express'); const app = express(); const bodyParser = require('body-parser'); const passport = require('passport'), LocalStrategy = require('passport-local').Strategy; const flash = require('connect-flash'); const expressValidator = require('express-validator'); const mongoose = require('mongoose'); //dev dependencies let logger = require('morgan'); //setting view engine for ejs app.set('view engine', 'ejs' ); //middleware app.use(require('express-session')({ […]

尝试发出POST请求注册新用户时出现404错误

我正在尝试设置用户注册的function。 registry单使用Redux表单,身份validation由passport.js处理,我使用mongoDB(mLab)作为我的用户数据库。 当我尝试注册新用户时,出现以下错误: POST http://localhost:3000/signup 404 (Not Found) Uncaught (in promise) Error: Request failed with status code 404 动作/ index.js: export const createUser = values => async dispatch => { const res = await axios.post('/signup', values); dispatch({ type: CREATE_USER, payload: res }); }; authRoutes.js: const passport = require('passport'); module.exports = app => { app.post( '/signup', […]

摩卡柴testing受保护的路线

我有一个Express服务器,我使用passport-local进行身份validation。 我有以下受保护的路线: app.post("/api/test", connect.ensureLoggedIn("/"), (req, res) => { let test = new Test(req.body); test .save() .then(data => { return res.json(data); }) .catch(e => { return res.status(HTTP_RESPONDE_BAD_REQUEST).send(e); }); }); 我想知道如何testing上面提到的路线,确保用户login。 这是我目前的testing(它没有通过,因为我无法发送authentication: it("Testing protected route", done => { chai .request(server) .post("/api/test") .send(test) .end((err, res) => { expect(res.status).to.equal(200); done(); }); }); 我已经尝试了以下,但是当我运行testing他们redirect到login页面。 it("Testing protected route", done => { […]

护照本地策略 – 不通过callback

我认为我制定了一个像以前一样的许多人的标准护照本地战略。 我已经parsing了表单,试过enctype = "multipart/urlencoded" ,大多数人提到的方式。 但是, passport.serializeUser仍然没有被触发。 现在,它可以redirect到主页,但是,在控制用户时,它是未定义的。 const env = require('dotenv').load(), config = require( __dirname + '/config.json' )[process.env.NODE_ENV], config_web = config.web, config_fb = config.fb, _WEB_PORT = config_web.port, _WEB_HOST = config_web.host, _FB_ID = config_fb.fid, _FB_SECRET = config_fb.secret; const express = require('express'), app = express(), compression = require('compression'), ejs = require('ejs'), cookieParser = require('cookie-parser'), fs = […]

成功,但依然使用failureRedirect – 护照

app.post('/signup', passport.authenticate('local-signup', { successRedirect: '/', failureRedirect: '/signup', failureFlash: true })); 这是路线。 passport.use('local-signup', new LocalStrategy({ usernameField: 'email', passwordField: 'password', passReqToCallback: true }, function(req, email, password, done) { process.nextTick(function() { User.findOne({ 'local.email': email }, function(err, user) { if(err) return done(err); if(user) { return done(null, false, req.flash('signupMessage', 'That email is already taken')); } else { var newUser = […]

ejs模板没有正确渲染

我正在尝试复制使用护照创build用户身份validation的教程。 每当我尝试在signup.ejs中包含下面的代码片段: <% if (message.length > 0) { %> <div class="alert alert-danger"><%= message %></div> <% } %> 它抛出错误,只要我从signup.ejs中删除它,它呈现。 下面是我的app.js (包括所有的configuration), index.js (路由部分), signup.ejs 和passport.js (提到这个文件的链接) app.js var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var routes = require('./routes/index'); var […]

护照。authentication死亡沉默

所以试图为用户注册创build一个本地策略,前端相当简单,四个领域; 用户名,电子邮件,密码(然后重新input密码,因为它的forms)。 我知道这篇文章的作品,下面的信息是作为它的一部分发送的 username:user email:user@test.com password:IAMPASSWORD passwordConfirm:IAMPASSWORD 然后,我使用我所了解的是一个非常简单的passport.authenticate(好吧,我认为它应该是简单的,但显然不是那么简单)。 var cfgWebPage = require('../config/webpage.js') module.exports = function(app, passport) { /* GET home page. */ app.get('/', function (req, res, next) { res.render('index', {title: 'Express'}); }); //This is signup app.get('/signup', function(req, res) { // render the page and pass in any flash data if it exists res.render('signup.ejs', { title: […]

一旦authentication,总是去索引页面,而不是login

我有一个护照的小问题,一旦我成功login总是默认去“/ index”而不是“/”<—这是login页面。 默认情况下,用户将进入“/”,如果他们已经有一个会话,他们将被自动redirect到“/ index” 我有一些地方,如果用户没有通过身份validation,他们不能访问“/索引”,但不断获得redirect循环与我试图防止这一切,我只用了护照的最后一天左右,并有这个问题的问题。 我有一些地方,如果用户没有通过身份validation,他们不能访问“/索引” 任何人有什么build议,缺less什么? //Gets the login route and renders the page. app.get('/', function (req, res) { res.render('login'); }); //The index page, isLoggedIn function always called to check to see if user is authenticated or in a session, if they are they can access the index route, if they are not they […]

Passport + Node – req.isAuthentiated不是Object.isLoggedIn中的函数

我的代码有一个错误,带有护照function。 我遵循这个教程: 遵循示例教程 我从nodemon server.js中的/ routes文件中得到一个错误: TypeError:req.isAuthentiated不是一个函数 而当我尝试login浏览器窗口(我可以注册,而数据库正在存储用户)这个错误: TypeError: req.isAuthentiated is not a function at Object.isLoggedIn [as handle] 这是一个护照function,我很困惑如何解决这个问题。 server.js: var express = require('express'); var app = express(); var port = process.env.PORT || 8080; var mongoose = require('mongoose'); var passport = require('passport'); var flash = require('connect-flash'); // messages stored in session var morgan = require('morgan'); […]

护照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: […]