// const express = require('express'); // const router = express.Router(); // const jwt = require("jsonwebtoken"); // const { Email } = require('../models/email.model'); // const { User } = require('../models/user.model'); // const nodemailer = require('nodemailer'); // const role = require('../lib/role'); // require('dotenv').config(); // const passport = require('passport'); // const GoogleStrategy = require('passport-google-oauth20').Strategy; // router.use(passport.initialize()); // //router.use(passport.session()); // passport.serializeUser((user, cb) => { // cb(null, user); // }); // passport.deserializeUser((obj, cb) => { // cb(null, obj); // }); // // passport.use(new GoogleStrategy({ // // clientID: "493465923713-qrbgtq8d53iguine1gf928483mn4odes.apps.googleusercontent.com", // // clientSecret: "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", // // callbackURL: "http://localhost:4000/api/auth/google/callback" // // }, // // async (accessToken, refreshToken, profile, done) => { // // console.log(profile.emails[0].value) // // return done(null, profile); // // var email = profile.emails[0].value // // const user = await User.findOne({email: email}) // // if (user) { // // console.log(user) // // user.username = accessToken; // // user.save().then(()=>{ // // return done(null, user); // // }) // // }else{ // // console.log('creation of user') // // //make a new record // // let user = await new User({ // // googleId: profile.id, // // email: profile.emails[0].value, // // accessToken : accessToken, // // refreshToken : refreshToken // // }).save() // // done(null, user); // // } // // console.log('acces token ',accessToken); // // console.log('refresh token ',refreshToken); // // console.log('prfile ',profile.emails[0].value); // // console.log('done ',done); // // } // // )); // passport.use(new GoogleStrategy({ // clientID: "493465923713-qrbgtq8d53iguine1gf928483mn4odes.apps.googleusercontent.com", // clientSecret: "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", // callbackURL: "http://localhost:4000/api/auth/google/callback" // }, // async (req, accessToken, refreshToken, profile, cb) => { // User.findOne({ email: profile.emails[0].value }, (err, user) => { // if (err) { // cb(err); // handle errors! // } // if (!err && user !== null) { // cb(err, user); // } // else { // user = new User({ // googleId: profile.id, // email: profile.emails[0].value, // firstname: profile.name.givenName, // lastname: profile.name.familyName, // role: role.Client, // isActive: true, // isGain: false, // }); // user.save((err) => { // if (err) { // cb(err); // handle errors! // } else { // cb(null, user); // } // }); // } // }); // } // )); // router.get('/', passport.authenticate('google', { session: false, scope: ['profile', 'email'] }), // async () => { // console.log('je suis dans mon get root') // }); // // router.get('/callback', passport.authenticate('google') ) // router.get('/callback', passport.authenticate('google', { failureRedirect: '/failed' }), // async (req, res) => { // console.log('je susi dans ma fonction callback ', req.user) // const token = jwt.sign({ userId: req.user._id, email: req.user.email, role: req.user.role }, process.env.SECRET_KEY, { expiresIn: '10 h' }) // //res.status(200).json({ success: true, token, expireIn: `${new Date().getTime() + 120000}` }) // console.log(token) // res.redirect(`${process.env.URL}/auth/?token=${token}`); // }); // //failed auth google // router.get('/failed', async (req, res) => { res.status(404).send('erreur authentification') }) // //get all users // router.get('/good', async (req, res) => { // res.status(200).send('welcome mr '); // }) // module.exports = router;