// 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;