GoogleOauth2.0 Funktioniert. Beim Aufrufen von http://localhost:7000/ wird direkt die Google Login Seite geöffnet. Es wird dann von der callback route '/auth/google/callback' die route '/dash' geöffnet. Auf der Route '/dash' wird unsere index Seite der app entwickelt
55 lines
1.3 KiB
JavaScript
55 lines
1.3 KiB
JavaScript
var express = require('express');
|
|
var router = express.Router();
|
|
var session;
|
|
|
|
// GoogleOauth2.0
|
|
passport = require('passport'),
|
|
auth = require('../public/login/auth');
|
|
auth(passport);
|
|
router.use(passport.initialize());
|
|
|
|
cookieParser = require('cookie-parser'),
|
|
cookieSession = require('cookie-session');
|
|
|
|
router.use(cookieSession({
|
|
name: 'session',
|
|
keys: ['aoisdzflkudheowe777elkjv']
|
|
}));
|
|
|
|
router.use(cookieParser());
|
|
|
|
router.get('/', (req, res) => {
|
|
// if (req.session.passport.user.token) {
|
|
// res.redirect('/dash');
|
|
// } else {
|
|
res.redirect('/auth/google');
|
|
// }
|
|
});
|
|
router.get('/auth/google', passport.authenticate('google', {
|
|
scope: ['https://www.googleapis.com/auth/userinfo.profile']
|
|
}));
|
|
router.get('/auth/google/callback',
|
|
passport.authenticate('google', {failureRedirect:'/'}),
|
|
(req, res) => {
|
|
req.session.passport.user.token = req.user.token;
|
|
res.redirect('/dash');
|
|
}
|
|
);
|
|
|
|
router.get('/logout', (req, res) => {
|
|
req.logout();
|
|
req.session = null;
|
|
res.redirect('/');
|
|
});
|
|
|
|
router.get('/dash', function(req, res, next) {
|
|
console.log("Session: ", req.session.passport.user.token);
|
|
if (req.session.passport.user.token) {
|
|
res.render('index');
|
|
} else {
|
|
res.redirect('/auth/google');
|
|
}
|
|
});
|
|
|
|
module.exports = router;
|