Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在passport github中,req.user未定义(反序列化用户未工作)_Javascript_Node.js_Express_Passport.js - Fatal编程技术网

Javascript 在passport github中,req.user未定义(反序列化用户未工作)

Javascript 在passport github中,req.user未定义(反序列化用户未工作),javascript,node.js,express,passport.js,Javascript,Node.js,Express,Passport.js,我使用webpack开发服务器(localhost:8000)和节点服务器(localhost:3000) 我添加了passport github策略来应用OAuth,但从未调用desrializeUser函数。我试过了,但解决不了这个问题 原因是什么 这是cors、会话、护照设置 const app = express(); app.use(cors({origin: true,credentials: true,})); app.use(logger('short')); app.use(

我使用webpack开发服务器(localhost:8000)和节点服务器(localhost:3000)

我添加了passport github策略来应用OAuth,但从未调用desrializeUser函数。我试过了,但解决不了这个问题

原因是什么

这是cors、会话、护照设置

const app = express();

app.use(cors({origin: true,credentials: true,}));
app.use(logger('short'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser(process.env.COOKIE_SECRET));
app.use(session({
    resave: false, 
    saveUninitialized: false, 
    secret: process.env.COOKIE_SECRET,
    cookie: { secure: false},
}),
);
app.use(session({ secret: 'asdasd' }));
app.use(passport.initialize());

这是github战略

const GithubStrategy = require('passport-github').Strategy;
passport.use(
  new GithubStrategy(
    {
      clientID: process.env.CID,
      clientSecret: process.env.CSCR,
      callbackURL: 'http://localhost:3000/auth/github/callback',
    },

    (accessToken, refreshToken, profile, done) => {
      return done(null, { username: profile.username });
    },
  ),
);

这是路由和序列化&反序列化用户 反序列化用户从未调用。有什么问题吗?

passport.serializeUser(function (user, done) {done(null, user);});
passport.deserializeUser(function (user, done) {done(null, user);});




const isLogin = (req, res, next) => {
  console.log(req.session.passport); 
  //===> it works, use axios credential setting

  console.log(req.user);  //=> undefined
  next();
};

app.use('/api/v1', isLogin, router);
app.get('/auth/github', passport.authenticate('github'));
app.get('/auth/github/callback', passport.authenticate('github'), (req, res) => {
  //   console.log(req.user);     ====> it works
  //   console.log(req.session);  ====> it works
  res.redirect('http://localhost:8000/issues');
});
在isLogin中间件中,console.log(req.user)的结果是未定义的,我想原因是反序列化用户没有工作