Twitter Login authentication

pull/2/head
Sahat Yalkabov 2013-12-02 19:16:27 -05:00
parent d2b60b64c1
commit cab3e31e3f
3 changed files with 32 additions and 9 deletions

3
app.js
View File

@ -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/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/callback', api.foursquareCallback);

View File

@ -1,6 +1,7 @@
var passport = require('passport'),
LocalStrategy = require('passport-local').Strategy,
FacebookStrategy = require('passport-facebook').Strategy,
TwitterStrategy = require('passport-twitter').Strategy,
GoogleStrategy = require('passport-google-oauth').OAuth2Strategy,
User = require('../models/User'),
config = require('./config.json');
@ -40,17 +41,10 @@ passport.use(new FacebookStrategy({
callbackURL: config.facebook.callbackUrl || "http://localhost:8000/auth/facebook/callback"
},
function (accessToken, refreshToken, profile, done) {
console.log(profile);
User.findOne({ facebook: profile.id }, function(err, existingUser) {
if (err) done(err);
if (err) {
done(err);
}
if (existingUser) {
return done(null, existingUser);
}
if (existingUser) return done(null, existingUser);
var user = new User({
firstName: profile.name.givenName,
@ -65,7 +59,32 @@ passport.use(new FacebookStrategy({
if (err) console.log(err);
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);
});
});
}
));

View File

@ -14,6 +14,7 @@
"passport": "*",
"passport-local": "*",
"passport-facebook": "*",
"passport-twitter": "*",
"passport-google-oauth": "*",
"sendgrid": "*",
"tumblrwks": "*",