在将next.js应用程序中使用的password.js创建持久会话时遇到麻烦吗?

时间:2019-09-10 19:23:02

标签: session passport.js next.js

这是我第一次尝试使用password.js。我正在使用express和next.js在页面之间进行路由并从数据库中获取数据。

用户登录时,会话开始,然后终止。

我已验证用户已成功登录,护照会话开始,并且创建了req.user。

登录护照后立即进行身份验证,重定向到用户的个人资料页面。据我所知req.user在这里存在。此时,next.js将接管呈现配置文件页面,其中包括大约7个服务器请求。这些请求将结束护照会话。

由于我发现大部分内容无关紧要或已经与我的代码匹配,因此谷歌搜索并没有帮助。

setUpPassport();
//start next
app.prepare().then(() => {
//start express
 const server = express();

    //server.use(morgan('short'))
    server.use(cookieParser());

    server.use(bodyParser.json());
    server.use(bodyParser.urlencoded({extended: false}));
    server.use(session({
        secret: "GH^&fg,.ig*76gHlg",
        resave: true,
        saveUninitialized: true
      }));
      server.use(bodyParser.json());
      server.use(bodyParser.urlencoded({extended: false}));
    server.use(flash());

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

    server.use(function(req, res, next) {
        res.locals.currentUser = req.user;
        res.locals.errors = req.flash("error");
        res.locals.infos = req.flash("info");
        next();
      });

    server.post("/login", passport.authenticate("login"), 
      function(req,res){
         // console.log("logging in")
         // console.log(req.user)
         res.redirect("/profile/"+req.user.username);
        //res.redirect("/commander");
      });

有没有办法让会议持续进行?还是下一张和护照一起玩不好?

0 个答案:

没有答案