1
私はnode.jsを学び、google oauthでクッキーを保存しているエクスプレスログインをやっているような頭痛をしています。私はmongodbを使用しています、ユーザーは問題なく保存されます。google-oathログイン後にnode.js/express/passportがぶら下がっています
私はうまくログインできますが、私はクッキーbaaaamを設定します。しかし、コンソールにエラーはありません。
cookies-sessionとexpressを使用してクッキーを設定しようとすると、アプリケーションがハングアップし、 '/ logout'のルートにアクセスできなくなります。私はブラウザ上のクッキーをクリアすれば、私は再びそれらにアクセスすることができます。私はこの時点で立ち往生しています。
これは私のapp.js
app.use(
cookieSession({
maxAge: 30 * 24 * 60 * 60 * 1000,
keys: [keys.cookieSession]
})
);
app.use(passport.initialize());
app.use(passport.session());
私のルート
app.get('/auth/google',
passport.authenticate('google', {
scope: ['profile', 'email']
})
);
app.get('/auth/google/callback', passport.authenticate('google'));
app.get('/api/logout', (req, res) => {
req.logout();
res.send(req.user);
});
と私のpassport.js
passport.serializeUser((user, done) => {
done(null, user.id);
});
passport.deserializeUser((id, done) => {
User.findById(id).then(user => {
done(err, user);
});
});
passport.use(new GoogleStrategy({
clientID: keys.googleClientID,
clientSecret: keys.googleClientSecret,
callbackURL: '/auth/google/callback'
},
(accessToken, refreshToken, profile, done) => {
User.findOne({ googleId: profile.id }).then((existingUser) => {
if (existingUser) {
// don't create a new user
done(null, existingUser);
} else {
// create a new user
new User ({ googleId: profile.id }).save()
.then(user => (null, user));
}
})
}
));