Passport.js验证重定向超时
我花了两天时间寻找这个问题的答案,都无济于事。
当我尝试登录了重定向未能执行用户。它会在数据库中的用户,但不会重定向到主页。它最终将超时并抛出,即使它是一个全新的用户此错误A user with the given username is already registered
。这似乎是创建用户,然后再次尝试。
我在另一个Web的应用程序没有问题使用相同的代码(如下图)。任何帮助深表感谢。
App.js
require('dotenv').config()
const express = require('express')
const app = express()
const bodyParser = require('body-parser')
const mongoose = require('mongoose')
const morgan = require('morgan')
const passport = require('passport')
const flash = require('connect-flash')
const LocalStrategy = require('passport-local').Strategy
const methodOverride = require('method-override')
//Require Models
const User = require('./models/user')
//Require Routes
const indexRoutes = require('./routes/index')
const membersRoutes = require('./routes/members')
mongoose.connect(process.env.MONGODB_URL, {useNewUrlParser: true})
//Console log
app.use(morgan('dev'))
//Configure Body Parser
app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json())
app.set('view engine', 'ejs')
app.use(express.static(__dirname + '/public'))
app.use(methodOverride('_method'))
app.use(flash())
//Add time stamp to post, comments, and contributions.
app.locals.moment = require('moment')
//Allow browser access.
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*')
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization')
if (req.method === 'OPTIONS') {
res.header('Access-Control-Allow-Methods', 'GET, POST, PATCH, DELETE, PUT')
}
next()
})
//Passport Config
app.use(require('express-session')({
secret: 'string that I will not show',
resave: false,
saveUninitialized: false
}))
app.use(passport.initialize())
app.use(passport.session())
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
User.authenticate))
passport.serializeUser(User.serializeUser())
passport.deserializeUser(User.deserializeUser())
app.use((req, res, next) => {
res.locals.currentUser = req.user
res.locals.error = req.flash('error')
res.locals.success = req.flash('success')
next()
})
//Use Routes
app.use(indexRoutes)
app.use(membersRoutes)
module.exports = app
回答如下:
我找到了!!事实证明,同时寻找的答案,以前的错误我已经在代码的下面部分去掉一组括号...
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
User.authenticate))
与本文相关的文章
评论列表(0)
- 暂无评论