mongoose passport的请求错误,authenticate()

bwleehnv  于 2022-11-13  发布在  Go
关注(0)|答案(3)|浏览(144)

我对使用passportjs进行用户身份验证有点陌生,我试图在我正在构建的一个简单应用程序上注册一个用户,但我在浏览器中一直收到错误“Bad Request”。用户确实在数据库中创建,但重定向不起作用。如有任何帮助,我将不胜感激。如果以前有人问过这个问题,我很抱歉:)
我附上了我的一些代码。

User.register(new User({username : req.body.user_email}), req.body.user_password, function(err, user){
    if(err) {
        return res.render("register-user", { userDetails : user})
    }

    passport.authenticate("local")(req, res, function(){
        res.redirect("/profile");
    })
})

我的用户模式如下:

const usersSchema = new mongoose.Schema({
    username : String,
    password : String
})
jucafojl

jucafojl1#

所以我做了更多的挖掘,我找到了我的问题的答案。似乎是Passportjs要求表单输入必须有用户名和密码作为它们的名称属性,然后才能工作。

fhg3lkii

fhg3lkii2#

从我的观察来看,user对象的参数并不完整,你没有包括密码路径,检查下面的固定代码:

User.register(new User({
    username : req.body.user_email,
    password: req.body.user_password}), 
    function(err, user){
    if(err) {
     return res.render("register-user", { userDetails : user})
    }
  passport.authenticate("local")(req, res, function(){
    res.redirect("/profile");
   })
   })
iyfjxgzm

iyfjxgzm3#

我遇到了同样的问题。这个问题的解决方案是使表单输入具有确切的用户名和密码作为名称属性。新用户也应该具有这种格式

<input type="email" name="username">

<input type="password" name="password">

在js文件中

const user = new User({
    username: req.body.username,
    password: req.body.password
})

相关问题