最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Passport.js验证重定向超时

运维笔记admin12浏览0评论

Passport.js验证重定向超时

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)

  1. 暂无评论