Express 当服务器位于其他端口上时,请求中的Passport用户对象在getInitialProps中不可用

Express 当服务器位于其他端口上时,请求中的Passport用户对象在getInitialProps中不可用,express,graphql,next.js,passport.js,apollo-client,Express,Graphql,Next.js,Passport.js,Apollo Client,我的express服务器位于与客户端nextjs项目不同的端口 我知道当您在同一端口上有一台服务器时,您可以使用getRequestHandler和next来传递user对象,以便在客户端使用getInitialProps进行访问 const express = require("express"); const next = require("next"); const app = next({ dev: true }); const handle =

我的
express
服务器位于与客户端
nextjs
项目不同的端口

我知道当您在同一端口上有一台服务器时,您可以使用
getRequestHandler
next
来传递
user
对象,以便在客户端使用
getInitialProps
进行访问

const express = require("express");
const next = require("next");

const app = next({ dev: true });
const handle = app.getRequestHandler();

app.prepare().then(() => {
  const server = express();

  // adds passport session
  require("./middlewares").init(server);

  const apolloServer = require("./graphql").createApolloServer();
  apolloServer.applyMiddleware({ app: server });

  server.all("*", (req, res) => {
    return handle(req, res);
  });

  server.listen(port, (err) => {
    if (err) throw err;
  });
});
我的护照执行如下

const config = require("../config");
const session = require("express-session");
const passport = require("passport");

exports.init = (server, db) => {
  require("./passport").init(passport);

  const sess = {
    name: "pid",
    secret: config.SESSION_SECRET,
    cookie: { maxAge: 2 * 60 * 60 * 1000 },
    resave: false,
    saveUninitialized: false,
    store: db.initSessionStore(),
  };

  if (process.env.NODE_ENV === "production") {
    server.set("trust proxy", 1);
    sess.cookie.secure = true;
    sess.cookie.httpOnly = true;
    sess.cookie.sameSite = 'none';
    sess.cookie.domain = process.env.DOMAIN;
  }

  server.use(session(sess));
  server.use(passport.initialize());
  server.use(passport.session());
};
express
服务器上运行以下命令,我可以看到
req.user
返回
user
对象

app.use((req, res, next) => {
  console.log(req.user);
  next();
});
在我的
nextjs
应用程序的一个页面中,在
getInitialProps
req.user
中是
未定义的

Home.getInitialProps = async (ctx) => {
  const { req } = ctx;
  const { user } = req;
  console.log(user);
  ..........
};
是否有方法通过nextjs中的SSR访问passport
用户
对象,或者使用不同的方法在页面上授权和访问用户

README.md