Advertisement
Guest User

Untitled

a guest
Oct 29th, 2016
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.82 KB | None | 0 0
  1. var Appbase = require('appbase-js');
  2. var FacebookStrategy = require('passport-facebook').Strategy;
  3. var TwitterStrategy = require('passport-twitter').Strategy;
  4. var credentials = require('../config/credentials')
  5.  
  6. var appbaseRef = new Appbase({
  7. url: credentials.appbaseAuth.url,
  8. appname: credentials.appbaseAuth.appName,
  9. username: credentials.appbaseAuth.userName,
  10. password: credentials.appbaseAuth.password
  11. });
  12.  
  13. module.exports = function(passport){
  14. passport.serializeUser(function(user, done){
  15. done(null, user);
  16. });
  17.  
  18. passport.deserializeUser(function(user, done){
  19. done(null, user);
  20. });
  21.  
  22. passport.use(new FacebookStrategy({
  23. clientID : credentials.facebookAuth.clientID,
  24. clientSecret: credentials.facebookAuth.clientSecret,
  25. callbackURL : credentials.facebookAuth.callbackURL,
  26. profileFields: ["emails", "displayName", "profileUrl", "photos"]
  27. },
  28. function(token, refreshToken, profile, done){
  29. appbaseRef.search({
  30. type: 'user',
  31. body: {
  32. query: {
  33. match: {
  34. 'facebook.id': profile.id
  35. }
  36. }
  37. }
  38. }).on('data', function(response) {
  39. if (response.hits.total === 0){
  40. var user = {
  41. 'facebook' : {
  42. 'id' : profile.id,
  43. 'token' : token,
  44. 'email' : profile.emails[0].value,
  45. 'name' : profile.displayName,
  46. 'profilePic' : profile.photos[0].value
  47. }
  48. };
  49.  
  50. appbaseRef.index({
  51. type: 'user',
  52. body: user
  53.  
  54. }).on('data', function(response){
  55. return done(null, user);
  56. }).on('error', function(error){
  57. return done(error);
  58. });
  59. }
  60. else{
  61. return done(null, response.hits.hits[0]._source);
  62. }
  63.  
  64.  
  65. }).on('error', function(error) {
  66. return done(error);
  67.  
  68. });
  69. }
  70. )
  71. );
  72.  
  73. passport.use(new TwitterStrategy({
  74. consumerKey : credentials.twitterAuth.consumerKey,
  75. consumerSecret : credentials.twitterAuth.consumerSecret,
  76. callbackURL : credentials.twitterAuth.callbackURL
  77. },
  78. function(token, refreshToken, profile, done){
  79. appbaseRef.search({
  80. type: 'user',
  81. body: {
  82. query: {
  83. match: {
  84. 'twitter.id': profile.id
  85. }
  86. }
  87. }
  88. }).on('data', function(response) {
  89. if (response.hits.total === 0){
  90. var user = {
  91. 'twitter' : {
  92. 'id' : profile.id,
  93. 'token' : token,
  94. 'username' : profile.username,
  95. 'name' : profile.displayName,
  96. 'profilePic' : profile.photos[0].value
  97. }
  98. };
  99.  
  100. appbaseRef.index({
  101. type: 'user',
  102. body: user
  103.  
  104. }).on('data', function(response){
  105. return done(null, user);
  106. }).on('error', function(error){
  107. return done(error);
  108. });
  109. }
  110. else{
  111. return done(null, response.hits.hits[0]._source);
  112. }
  113.  
  114.  
  115. }).on('error', function(error) {
  116. return done(error);
  117.  
  118. });
  119. }
  120. ));
  121. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement