gpt4 book ai didi

javascript - Passport LocalStrategy 从未调用过 Express

转载 作者:行者123 更新时间:2023-12-03 12:18:17 25 4
gpt4 key购买 nike

我在 LocalStrategy 回调中写了 console.log 但它从未调用过。我将 Sequelize 用于 ORM (MySQL)。

Passport .js

const LocalStrategy = require('passport-local').Strategy
const passport = require('passport')
const bcrypt = require('bcrypt')
const UrunModel = require('../models/Urun')

console.log('File is Called') // If my require is wrong. But this log worked.

passport.use(new LocalStrategy({
usernameField: 'mail',
passwordField: 'pw1'
},
(username, password, done) => {
console.log('Worked!') // Never Called
UrunModel.findOne({
where : {
UrunName : 'testuser',
UrunDesc : '123456'
}
})
}
));

passport.serializeUser(function(user, done) {
done(null, user.id);
});

passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});

索引.js

const session = require('express-session');
const bodyParser = require('body-parser')
const urlencoded = bodyParser.urlencoded({extended:false})
const passport = require('passport')

app.use(session({
secret: 'keyboardSecrIncKey',
resave: false,
saveUninitialized: true,
}))

app.use(passport.initialize())
app.use(passport.session())

require('./config/passport') //require my passport.js

app.post('/test',(req,res,next) => {
passport.authenticate('local',{
successRedirect: '/worked',
failureRedirect: '/notworked'
})(req,res,next)
})

它重定向我的“/notworked” url。我看了 3 或 4 个视频,但我的代码几乎相同。

我哪里失败了?请解释我的错误。

最佳答案

默认情况下,LocalStrategy 希望在名为用户名和密码的参数中找到凭据。如果您的站点更喜欢以不同方式命名这些字段,则可以使用选项来更改默认值。

你使用mailpw1参数,检查req.body,因为req.body没有在正文中有这个参数。

如果你更换你的问题将得到解决

{
usernameField: 'mail',
passwordField: 'pw1'
}

{
usernameField: 'username',
passwordField: 'password'
}

您还可以检查 documentation

关于javascript - Passport LocalStrategy 从未调用过 Express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65630974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com