Skip to content

Instantly share code, notes, and snippets.

@pizzapanther
Last active May 20, 2018 21:19
Show Gist options
  • Save pizzapanther/db5bd5c0115892544fee27735c4a7027 to your computer and use it in GitHub Desktop.
Save pizzapanther/db5bd5c0115892544fee27735c4a7027 to your computer and use it in GitHub Desktop.
Passport JS Twitter Starter
const express = require('express');
const nunjucks = require('nunjucks');
const body_parser = require('body-parser');
const session = require('express-session');
var app = express();
nunjucks.configure('views', {
autoescape: true,
express: app,
noCache: true
});
//--- passport config ---//
var passport = require('passport');
var TwitterStrategy = require('passport-twitter').Strategy;
passport.use(new TwitterStrategy({
consumerKey: process.env.TWITTER_KEY,
consumerSecret: process.env.TWITTER_SECRET,
callbackURL: "https://example.com/auth/twitter/callback"
},
function(token, tokenSecret, profile, done) {
console.log(profile);
done(null, profile);
}
));
passport.serializeUser(function(user, cb) {
cb(null, user);
});
passport.deserializeUser(function(obj, cb) {
cb(null, obj);
});
app.use(session({
secret: process.env.SECRET_KEY || 'dev',
resave: true,
saveUninitialized: false,
cookie: {maxAge: 60000}
}));
app.use(body_parser.urlencoded({extended: false}));
app.use(express.static('public'));
//--- passport config ---//
app.use(passport.initialize());
app.use(passport.session());
//--- passport routes ---//
app.get('/auth/twitter', passport.authenticate('twitter'));
app.get('/auth/twitter/callback',
passport.authenticate('twitter', { successRedirect: '/',
failureRedirect: '/login' }));
app.listen(8000, function () {
console.log('Listening on port 8000');
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment