Creazione organizza
[YouAndWeb_TwoToc] / .fr-KzWVa7 / twotoc / server / auth / twitter / passport.js
diff --git a/.fr-KzWVa7/twotoc/server/auth/twitter/passport.js b/.fr-KzWVa7/twotoc/server/auth/twitter/passport.js
new file mode 100755 (executable)
index 0000000..53ff035
--- /dev/null
@@ -0,0 +1,38 @@
+exports.setup = function(User, config) {
+  var passport = require('passport');
+  var TwitterStrategy = require('passport-twitter').Strategy;
+
+  passport.use(new TwitterStrategy({
+    consumerKey: config.twitter.clientID,
+    consumerSecret: config.twitter.clientSecret,
+    callbackURL: config.twitter.callbackURL
+  },
+  function(token, tokenSecret, profile, done) {
+    User.findOneAsync({
+      'twitter.id_str': profile.id
+    })
+      .then(function(user) {
+        if (!user) {
+          user = new User({
+            name: profile.displayName,
+            username: profile.username,
+            role: 'user',
+            provider: 'twitter',
+            twitter: profile._json
+          });
+          user.saveAsync()
+            .then(function(user) {
+              return done(null, user);
+            })
+            .catch(function(err) {
+              return done(err);
+            });
+        } else {
+          return done(null, user);
+        }
+      })
+      .catch(function(err) {
+        return done(err);
+      });
+  }));
+};