google.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. const express = require('express');
  2. const router = express.Router();
  3. const { Email } = require('../models/email.model');
  4. const { User } = require('../models/user.model');
  5. const nodemailer = require('nodemailer');
  6. const passport = require('passport');
  7. const GoogleStrategy = require('passport-google-oauth20').Strategy;
  8. router.use(passport.initialize());
  9. // router.use(passport.session());
  10. passport.serializeUser(function (user, done) {
  11. done(null, user);
  12. });
  13. passport.deserializeUser(function (user, done) {
  14. done(null, user);
  15. });
  16. // passport.use(new GoogleStrategy({
  17. // clientID: "931209872114-5glro42kjofspf239h7n7tq21f6ntgqq.apps.googleusercontent.com",
  18. // clientSecret: "sBiZm-fvgtCVVF3db7naVEwn",
  19. // callbackURL: "http://localhost:4000/api/auth/google/callback"
  20. // },
  21. // async (accessToken, refreshToken, profile, done) => {
  22. // console.log(profile.emails[0].value)
  23. // return done(null, profile);
  24. // var email = profile.emails[0].value
  25. // const user = await User.findOne({email: email})
  26. // if (user) {
  27. // console.log(user)
  28. // user.username = accessToken;
  29. // user.save().then(()=>{
  30. // return done(null, user);
  31. // })
  32. // }else{
  33. // console.log('creation of user')
  34. // make a new record
  35. // let user = await new User({
  36. // googleId: profile.id,
  37. // email: profile.emails[0].value,
  38. // accessToken : accessToken,
  39. // refreshToken : refreshToken
  40. // }).save()
  41. // done(null, user);
  42. // }
  43. // console.log('acces token ',accessToken);
  44. // console.log('refresh token ',refreshToken);
  45. // console.log('prfile ',profile.emails[0].value);
  46. // console.log('done ',done);
  47. // }
  48. // ));
  49. passport.use(new GoogleStrategy({
  50. clientID: "931209872114-5glro42kjofspf239h7n7tq21f6ntgqq.apps.googleusercontent.com",
  51. clientSecret: "sBiZm-fvgtCVVF3db7naVEwn",
  52. callbackURL: "http://localhost:4000/api/auth/google/callback"
  53. },
  54. function (request, accessToken, refreshToken, profile, done) {
  55. User.findOne({ email: profile.emails[0].value })
  56. .then(
  57. (user) => {
  58. if (user) {
  59. //if we already have a record with the given profile ID
  60. done(null, user);
  61. console.log('profile', user)
  62. } else {
  63. //if not, create a new user
  64. // new User({
  65. // googleId: profile.id,
  66. // }).save().then((newUser) => {
  67. // done(null, newUser)
  68. // }
  69. // )
  70. console.log('done')
  71. done(null, newUser)
  72. }
  73. }
  74. )
  75. .catch()
  76. // User.findOne({ email: profile.emails[0].value }, function(err, user) {
  77. // if(err) {
  78. // console.log(err); // handle errors!
  79. // }
  80. // if (!err && user !== null) {
  81. // console.log(user)
  82. // done(null, user);
  83. // } else {
  84. // console.log('fqsdffqef')
  85. // user = new User({
  86. // oauthID: profile.id,
  87. // name: profile.displayName,
  88. // created: Date.now()
  89. // });
  90. // user.save(function(err) {
  91. // if(err) {
  92. // console.log(err); // handle errors!
  93. // } else {
  94. // console.log("saving user ...");
  95. // done(null, user);
  96. // }
  97. // });
  98. // }
  99. // });
  100. }
  101. ));
  102. router.get('/', passport.authenticate('google', { session: false, scope: ['profile', 'email'] }));
  103. // router.get('/callback', passport.authenticate('google') )
  104. router.get('/callback', passport.authenticate('google', { failureRedirect: '/failed' }),
  105. function (req, res) {
  106. // res.redirect('/good')
  107. // console.log("success");
  108. // // Successful authentication, redirect home.
  109. res.status(200).json('ds');
  110. });
  111. //failed auth google
  112. router.get('/failed', async (req, res) => { res.status(404).send('erreur authentification') })
  113. //get all users
  114. router.get('/good', async (req, res) => {
  115. res.status(200).send('welcome mr ');
  116. })
  117. module.exports = router;