问题描述
我在机器上开发了一个网站,当我在本地运行该网站时,它可以正常工作。我正在使用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 (将#修改为@)