Georg Reisinger b171f1646c GoogleOauth2.0 First implementation
First try for GoogleOauth2.0
2018-10-26 14:02:15 +02:00

56 lines
1.2 KiB
JavaScript

var express = require('express');
var router = express.Router();
// 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.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.token = req.user.token;
res.redirect('/dash');
}
);
router.get('/logout', (req, res) => {
req.logout();
req.session = null;
res.redirect('/');
});
/* GET home page. */
router.get('/dash', function(req, res, next) {
if (req.session.token) {
res.render(index);
} else {
res.redirect('/auth/google');
}
});
module.exports = router;