Commit b06a9c43 authored by Sascha Schefenacker's avatar Sascha Schefenacker
Browse files

adding OIDC

parent 2f8762aa
......@@ -20,7 +20,14 @@
"cfenv": "^1.0.x",
"dotenv": "^4.0.0",
"express": "^4.15.x",
"mongodb": "^3.0.10"
"mongodb": "^3.0.10",
"cors": "^2.8.5",
"cookie-parser": "^1.4.5",
"express-session": "^1.17.1",
"jsonwebtoken": "^8.5.1",
"passport": "^0.4.1",
"passport-google-oauth20": "^2.0.0"
},
"author": "IBM Corp",
"license": "Apache-2.0"
......
var express = require("express");
var app = express();
var cfenv = require("cfenv");
// SASCHA STARTER KIT --- START
const session = require('express-session')
var passport = require('passport');
var GoogleStrategy = require('passport-google-oauth20').Strategy;
var cookieParser = require('cookie-parser')
var bodyParser = require('body-parser')
function ensureAuthenticated(req, res, next) {
if (req.isAuthenticated()) { return next(); }
res.redirect('/auth/google')
}
passport.use(new GoogleStrategy({
clientID: '1094506105952-1u3epenm26l4vdopnnodg4e9io3v0m0g.apps.googleusercontent.com',
clientSecret: 'kLziIAv6yxFmr-o_4Tsw1NuR',
callbackURL: "https://saschastarter.eu-de.mybluemix.net/auth/google/callback"
},
function(accessToken, refreshToken, profile, cb) {
return cb(null, {...profile});
}
));
passport.serializeUser(function(user, cb) {
cb(null, user);
});
passport.deserializeUser(function(obj, cb) {
cb(null, obj);
});
app.use(cookieParser());
app.use(bodyParser.json())
app.use(session({ secret: 'keyboard cat' }));
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', { failureRedirect: '/auth/google' }),
function(req, res) {
// Successful authentication, redirect home.
res.redirect('/');
});
app.all('*', function(req,res,next){
if (req.path === '/' ||
req.path === '/auth/google' ||
req.path === '/auth/google/callback' ||
req.path === '/profile')
next();
else
ensureAuthenticated(req,res,next);
});
app.get('/profile', //todo: route sichern
function(req, res) {
// Successful authentication, redirect home.
res.send(req.user);
});
// SASCHA STARTER KIT --- END
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
......
  • IBM Cloud toolchain: Delivery Pipeline deployed saschaStarter to saschaDev, including this commit

Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment