部署的网站中的本地护照猫鼬错误

问题描述

我在机器上开发了一个网站,当我在本地运行该网站时,它可以正常工作。我正在使用ExpressJS和Passport进行身份验证。猫鼬为数据库。

我有一个名为passport-local-mongoose的软件包,它可以正常工作,它简化了处理用户登录和注册的过程。

后端(ExpressJS)

const session = require('express-session');
const passport = require("passport");
const passportLocalMongoose = require("passport-local-mongoose");

app.use(session({
    secret: "I dunno,a secret.",resave: false,saveUninitialized: false
}))

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

当我将网站部署到heroku时,身份验证不起作用。但它在localhost上正常工作。

登录路线:

app.post('/login',(req,res) => {
    const user = new User({
        username: req.body.username,password: req.body.password
    })

    req.login(user,(err) => {
        if (err) return console.error(err);
        passport.authenticate('local')(req,res,() => {
            res.redirect('/')
        })
    })
})

我认为这是由于软件包passport-local-mongoose引起的,该软件包的名称暗示它仅在本地上可用。

如何从passport-local-mongoose过渡到可在实时网站上使用的软件包?我可以使用哪些软件包来实现此目的?我说passport-local-mongoose仅在本地有效吗?

我见过this个问题,但似乎无法回答我的问题。

注意:由于代码过多,我无法包含整个网站的代码。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)