I am new to passport and have run into this so maybe this is a very basic development bug with passport, where I am doing the priority is in index.js:
const express = require('express');
const router = express.Router();
const bodyParser = require('body-parser');
var jsonParser = bodyParser.json()
const passport = require('passport')
// create application/x-www-form-urlencoded parser
var urlencodedParser = bodyParser.urlencoded({ extended: false })
const connection = require('../../database/db.js');
router.get('/', (req, res) => {
res.render('user');
});
router.get('/login', (req, res) => {
res.render('login');
});
router.get('/home', (req, res) => {
res.send('hola');
});
router.post('/login', passport.authenticate('local.signup', {
successRedirect: '/home',
failureRedirect: '/login',
failureFlash: true
}));
module.exports = router;
And my main file is app.js, where I am doing the passport.session, passport.json, so this may be the error "passport" undefined:
const express = require('express');
const morgan = require('morgan');
const path = require('path');
const app = express();
require('./lib/passport.js')
const mysql = require('mysql');
const myConnection = require('express-myconnection');
const session = require("express-session");
const passport = require('passport');
// settings
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(express.urlencoded({extended: false}));
app.use(express.json());
app.use(passport.initialize());
app.use(passport.session());
// middlewares
app.use(morgan('dev'));
// routes
app.use(require('./routes'));
// static files
app.use(express.static(path.join(__dirname, 'public')));
// listening the Server
app.listen(app.get('port'), () => {
console.log('Server on port', app.get('port'));
});
And finally, where I get the error that is the console, but that if I could not read the error:
TypeError: Cannot read property 'passport' of undefined
at SessionStrategy.authenticate (C:\Users\ZerimexPC\Downloads\rbxfleet\node_modules\passport\lib\strategies\session.js:51:18)
at attempt (C:\Users\ZerimexPC\Downloads\rbxfleet\node_modules\passport\lib\middleware\authenticate.js:360:16)
at authenticate (C:\Users\ZerimexPC\Downloads\rbxfleet\node_modules\passport\lib\middleware\authenticate.js:361:7)
at Layer.handle [as handle_request] (C:\Users\ZerimexPC\Downloads\rbxfleet\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (C:\Users\ZerimexPC\Downloads\rbxfleet\node_modules\express\lib\router\index.js:317:13)
at C:\Users\ZerimexPC\Downloads\rbxfleet\node_modules\express\lib\router\index.js:284:7
at Function.process_params (C:\Users\ZerimexPC\Downloads\rbxfleet\node_modules\express\lib\router\index.js:335:12)
at next (C:\Users\ZerimexPC\Downloads\rbxfleet\node_modules\express\lib\router\index.js:275:10)
at initialize (C:\Users\ZerimexPC\Downloads\rbxfleet\node_modules\passport\lib\middleware\initialize.js:66:5)
at Layer.handle [as handle_request] (C:\Users\ZerimexPC\Downloads\rbxfleet\node_modules\express\lib\router\layer.js:95:5)
I think, Your issue is with passport session. You need to use express session before it for it to work properly.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.