Javascript 在passport github中,req.user未定义(反序列化用户未工作)
我使用webpack开发服务器(localhost:8000)和节点服务器(localhost:3000) 我添加了passport github策略来应用OAuth,但从未调用desrializeUser函数。我试过了,但解决不了这个问题 原因是什么 这是cors、会话、护照设置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(
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)的结果是未定义的,我想原因是反序列化用户没有工作