Twitter Login authentication
parent
d2b60b64c1
commit
cab3e31e3f
3
app.js
3
app.js
|
@ -66,6 +66,9 @@ app.get('/auth/facebook/callback', passport.authenticate('facebook', { successRe
|
||||||
app.get('/auth/google', passport.authenticate('google', { scope: 'profile email' }));
|
app.get('/auth/google', passport.authenticate('google', { scope: 'profile email' }));
|
||||||
app.get('/auth/google/callback', passport.authenticate('google', { successRedirect: '/', failureRedirect: '/login' }));
|
app.get('/auth/google/callback', passport.authenticate('google', { successRedirect: '/', failureRedirect: '/login' }));
|
||||||
|
|
||||||
|
app.get('/auth/twitter', passport.authenticate('twitter'));
|
||||||
|
app.get('/auth/twitter/callback', passport.authenticate('twitter', { successRedirect: '/', failureRedirect: '/login' }));
|
||||||
|
|
||||||
|
|
||||||
app.get('/auth/foursquare', api.foursquareAuth);
|
app.get('/auth/foursquare', api.foursquareAuth);
|
||||||
app.get('/auth/foursquare/callback', api.foursquareCallback);
|
app.get('/auth/foursquare/callback', api.foursquareCallback);
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
var passport = require('passport'),
|
var passport = require('passport'),
|
||||||
LocalStrategy = require('passport-local').Strategy,
|
LocalStrategy = require('passport-local').Strategy,
|
||||||
FacebookStrategy = require('passport-facebook').Strategy,
|
FacebookStrategy = require('passport-facebook').Strategy,
|
||||||
|
TwitterStrategy = require('passport-twitter').Strategy,
|
||||||
GoogleStrategy = require('passport-google-oauth').OAuth2Strategy,
|
GoogleStrategy = require('passport-google-oauth').OAuth2Strategy,
|
||||||
User = require('../models/User'),
|
User = require('../models/User'),
|
||||||
config = require('./config.json');
|
config = require('./config.json');
|
||||||
|
@ -40,17 +41,10 @@ passport.use(new FacebookStrategy({
|
||||||
callbackURL: config.facebook.callbackUrl || "http://localhost:8000/auth/facebook/callback"
|
callbackURL: config.facebook.callbackUrl || "http://localhost:8000/auth/facebook/callback"
|
||||||
},
|
},
|
||||||
function (accessToken, refreshToken, profile, done) {
|
function (accessToken, refreshToken, profile, done) {
|
||||||
console.log(profile);
|
|
||||||
|
|
||||||
User.findOne({ facebook: profile.id }, function(err, existingUser) {
|
User.findOne({ facebook: profile.id }, function(err, existingUser) {
|
||||||
|
if (err) done(err);
|
||||||
|
|
||||||
if (err) {
|
if (existingUser) return done(null, existingUser);
|
||||||
done(err);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (existingUser) {
|
|
||||||
return done(null, existingUser);
|
|
||||||
}
|
|
||||||
|
|
||||||
var user = new User({
|
var user = new User({
|
||||||
firstName: profile.name.givenName,
|
firstName: profile.name.givenName,
|
||||||
|
@ -65,7 +59,32 @@ passport.use(new FacebookStrategy({
|
||||||
if (err) console.log(err);
|
if (err) console.log(err);
|
||||||
done(null, user);
|
done(null, user);
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
));
|
||||||
|
|
||||||
|
// TWITTER OAUTH2 LOGIN
|
||||||
|
passport.use(new TwitterStrategy({
|
||||||
|
consumerKey: config.twitter.clientId,
|
||||||
|
consumerSecret: config.twitter.clientSecret,
|
||||||
|
callbackURL: '/auth/twitter/callback'
|
||||||
|
},
|
||||||
|
function(token, tokenSecret, profile, done) {
|
||||||
|
User.findOne({ facebook: profile.id }, function(err, existingUser) {
|
||||||
|
if (err) done(err);
|
||||||
|
if (existingUser) return done(null, existingUser);
|
||||||
|
console.log(profile);
|
||||||
|
var user = new User({
|
||||||
|
username: profile.username,
|
||||||
|
displayName: profile.displayName,
|
||||||
|
photo: profile.photos[0].value,
|
||||||
|
provider: profile.provider,
|
||||||
|
});
|
||||||
|
user[profile.provider] = profile.id;
|
||||||
|
user.save(function(err) {
|
||||||
|
if (err) console.log(err);
|
||||||
|
done(null, user);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
"passport": "*",
|
"passport": "*",
|
||||||
"passport-local": "*",
|
"passport-local": "*",
|
||||||
"passport-facebook": "*",
|
"passport-facebook": "*",
|
||||||
|
"passport-twitter": "*",
|
||||||
"passport-google-oauth": "*",
|
"passport-google-oauth": "*",
|
||||||
"sendgrid": "*",
|
"sendgrid": "*",
|
||||||
"tumblrwks": "*",
|
"tumblrwks": "*",
|
||||||
|
|
Loading…
Reference in New Issue