未通过Express Passport设置和发送Cookie

时间:2020-04-28 22:37:41

标签: express passport.js google-login

system.display

我必须自己明确设置并发送Cookie吗?

仅在我添加res.cookie('foo','bar');之后 在之前 res.redirect(303,index.js const express = require('express') const session = require('express-session'); const MongoStore = require('connect-mongo')(session); const MongoStore = connectMongo(session); const app = express() const sessionStore = new MongoStore({ mongooseConnection: connection, collection: 'sessions' }) app.use(session({ secret: 'mysecret', resave: false, saveUninitialized: true, store: sessionStore, cookie: { maxAge: (1000 * 60)*10 }, httpOnly: true, secure: false })); app.use(passport.initialize()); app.use(passport.session()); passport.serializeUser((user, done) => { console.log(user._id: " + user._id); done(null, user._id) }) const GoogleStrategy = passportGoogle.OAuth2Strategy const strategy = app => { const strategyOptions = { clientID: GOOGLE_ID, clientSecret: GOOGLE_SECRET, callbackURL: `/auth/google/callback` } const verifyCallback = async (accessToken, refreshToken, profile, done) => { let [err, user] = await to(getUserByProviderId(profile.id)) if (err || user) { return done(err, user) } const [createdError, createdUser] = await to( createUser({ provider: profile.provider, ... }) ) return done(createdError, createdUser) } passport.use(new GoogleStrategy(strategyOptions, verifyCallback)) app.get('/auth/google/callback', passport.authenticate('google'), (req, res) => { res.cookie('???what is default key set by PassportJS???', req.user._id); res.redirect(303, `/loggedByGoogle.html`); } I succesfully - logged in with Google, - passport.serializeUser was invoked - profile data was saved in MongoDB, - redirection happened to `/loggedByGoogle.html` but no cookies were sent to client and there is no entry in "sessions" data store after login. ); 我在客户端有一些cookie。

我虽然cookie是在“ serializeUser”之后由Passport内部设置的 调用。 护照是否设置了默认的cookie名称(密钥)?

我想念什么?

0 个答案:

没有答案