Skip to content

Instantly share code, notes, and snippets.

@rkkautsar
Created February 20, 2016 08:58
Show Gist options
  • Save rkkautsar/f88d79e58d05a2fc629e to your computer and use it in GitHub Desktop.
Save rkkautsar/f88d79e58d05a2fc629e to your computer and use it in GitHub Desktop.
Login SSO UI with Express.js and Passport
var express = require('express');
var passport = require('passport');
var CasStrategy = require('passport-cas2').Strategy;
var session = require('express-session');
var app = express();
var port = process.env.PORT || 3000;
app.use(session({secret: 'supersecretkey'}));
// Passport
app.use(passport.initialize());
app.use(passport.session());
var cas = new CasStrategy(
{ casURL: 'https://sso.ui.ac.id/cas2' },
function(username, profile, done) {
console.log(username);
console.log(profile);
var user = {};
user.username = username;
user.profile = profile;
done(null, user);
});
passport.use(cas);
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(user, done) {
done(null, user);
});
// Routes
app.get('/', function(req, res) {
res.json(req.user);
});
app.get('/login', passport.authenticate('cas'), function(req, res) {
res.redirect('/');
});
app.get('/logout', function(req, res) {
cas.logout(req, res, 'http://localhost:3000/');
});
// Start
app.listen(port);
console.log('App running on port ' + port);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment