passport-setup.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. const passport = require('passport');
  2. const GoogleStrategy = require('passport-google-oauth20');
  3. const FacebookStrategy = require('passport-facebook').Strategy;
  4. if (process.env.NODE_ENV === 'development') {
  5. keys = require('./keys');
  6. } else if (process.env.NODE_ENV === 'production') {
  7. keys = require('./private-keys');
  8. }
  9. const knex = require('../models/database');
  10. //access token is a token that we receive from google
  11. //refresh token refresh access token
  12. passport.serializeUser((user,done) => {
  13. console.log("do i come here?")
  14. console.log(user);
  15. //null can be an error & id is the id of mysql
  16. done(null,user.id);
  17. });
  18. passport.deserializeUser((id,done) => {
  19. //null can be an error & id is the id of mysql
  20. console.log("Or i come here?")
  21. knex.table('Users').where({id:id}).select('*')
  22. .then((user)=>{
  23. done(null,user);
  24. });
  25. });
  26. passport.use(
  27. new GoogleStrategy({
  28. // options for google strategy
  29. clientID: keys.google.clientID,
  30. clientSecret: keys.google.clientSecret,
  31. callbackURL: '/auth/google/redirect'
  32. }, (accessToken,refreshToken,profile,done) => {
  33. //check if user alread exists in our database
  34. console.log("we did found userrr");
  35. var user = {
  36. username : profile.displayName,
  37. googleId : profile.id,
  38. token : accessToken
  39. };
  40. knex.table('Users').where({googleId:user.googleId}).select('*').
  41. then((data) => {
  42. if(data.length > 0){
  43. console.log("found user");
  44. knex.table('Users').where({googleId:user.googleId}).update({token:accessToken}).then(() => {
  45. return done(null,data);
  46. });
  47. } else {
  48. console.log("didnt found user");
  49. knex.table('Users').insert(user)
  50. .then((user) => {
  51. console.log(user);
  52. return done(null,user);
  53. });
  54. }
  55. });
  56. }));
  57. passport.use(new FacebookStrategy({
  58. clientID: keys.facebook.clientID,
  59. clientSecret: keys.facebook.clientSecret,
  60. callbackURL: "/auth/facebook/redirect"
  61. }, (accessToken,refreshToken,profile,done) => {
  62. //check if user alread exists in our database
  63. //missing code
  64. // console.log(accessToken);
  65. // let user = {}
  66. // done(null,user)
  67. console.log("here????")
  68. let user = {
  69. username : profile.displayName,
  70. facebookId : profile.id,
  71. token : accessToken
  72. };
  73. knex.table('Users').where({facebookId:user.facebookId}).select('*')
  74. .then((data)=>{
  75. if(data.length > 0){
  76. console.log("found user")
  77. knex.table('Users').where({facebookId:user.facebookId}).update({token:accessToken}).then(() => {
  78. return done(null,data);
  79. });
  80. }
  81. else {
  82. console.log("didnt found user ..Inserting user..")
  83. knex.table('Users').insert(user)
  84. .then((user)=>
  85. {
  86. console.log("first here")
  87. return done(null,user)
  88. })
  89. }
  90. }).catch((e)=>{
  91. console.log("Error Found:",e)
  92. })
  93. }
  94. ));