我尝试使用 passport.js 对用户进行身份验证,但它给了我一个错误**服务器响应状态为 400(错误请求)**
Posted
技术标签:
【中文标题】我尝试使用 passport.js 对用户进行身份验证,但它给了我一个错误**服务器响应状态为 400(错误请求)**【英文标题】:I trying authenticate a user using passport.js but it gives me a error **the server responded with a status of 400 (Bad Request)** 【发布时间】:2021-02-04 03:51:13 【问题描述】:当我注册用户时,它成功保存到数据库中,但是当我对用户进行身份验证时,它给了我 400 (Bad Request) 错误
在此我使用 passport.js、passport-local、passport-local-mongoose 进行身份验证
这是我的代码:
mongoose.connect("mongodb://localhost:27017/logindb", useNewUrlParser: true);
const userSchema = new mongoose.Schema(
username: String,
password: String
);
userSchema.plugin(passportLocalMongoose);
const User = mongoose.model('User', userSchema);
passport.use(User.createStrategy());
serializeUser 和 deserializeUser 的代码:
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
这是我注册用户和验证用户的代码:
app.post('/register', function(req, res)
User.register(username: req.body.email, req.body.password, function(err, user)
if (err) console.log(err); res.redirect('/');
else
passport.authenticate('local')(req, res, function()
res.redirect('/home')
)
res.redirect('login')
);
)
【问题讨论】:
【参考方案1】:你弄错了sintex。 试试这个:
passport.authenticate('local'), function (req, res)
res.redirect('/home')
)
【讨论】:
以上是关于我尝试使用 passport.js 对用户进行身份验证,但它给了我一个错误**服务器响应状态为 400(错误请求)**的主要内容,如果未能解决你的问题,请参考以下文章
使用 Everyauth/Passport.js 向 Twitter 进行身份验证,同时询问用户名/电子邮件/密码
在带有 React.js 前端的 Node.js 上使用 Passport.js 进行身份验证