| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- const express = require('express');
- const router = express.Router();
- const { Email } = require('../models/email.model');
- const { User } = require('../models/user.model');
- const nodemailer = require('nodemailer');
- const passport = require('passport');
- const GoogleStrategy = require('passport-google-oauth20').Strategy;
- router.use(passport.initialize());
- // router.use(passport.session());
- passport.serializeUser(function (user, done) {
- done(null, user);
- });
- passport.deserializeUser(function (user, done) {
- done(null, user);
- });
- // passport.use(new GoogleStrategy({
- // clientID: "931209872114-5glro42kjofspf239h7n7tq21f6ntgqq.apps.googleusercontent.com",
- // clientSecret: "sBiZm-fvgtCVVF3db7naVEwn",
- // 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: "931209872114-5glro42kjofspf239h7n7tq21f6ntgqq.apps.googleusercontent.com",
- clientSecret: "sBiZm-fvgtCVVF3db7naVEwn",
- callbackURL: "http://localhost:4000/api/auth/google/callback"
- },
- function (request, accessToken, refreshToken, profile, done) {
-
- User.findOne({ email: profile.emails[0].value })
- .then(
- (user) => {
- if (user) {
- //if we already have a record with the given profile ID
- done(null, user);
- console.log('profile', user)
-
- } else {
- //if not, create a new user
- // new User({
- // googleId: profile.id,
- // }).save().then((newUser) => {
- // done(null, newUser)
- // }
- // )
- console.log('done')
- done(null, newUser)
- }
- }
- )
- .catch()
- // User.findOne({ email: profile.emails[0].value }, function(err, user) {
- // if(err) {
- // console.log(err); // handle errors!
- // }
- // if (!err && user !== null) {
- // console.log(user)
- // done(null, user);
- // } else {
- // console.log('fqsdffqef')
- // user = new User({
- // oauthID: profile.id,
- // name: profile.displayName,
- // created: Date.now()
- // });
- // user.save(function(err) {
- // if(err) {
- // console.log(err); // handle errors!
- // } else {
- // console.log("saving user ...");
- // done(null, user);
- // }
- // });
- // }
- // });
- }
- ));
- router.get('/', passport.authenticate('google', { session: false, scope: ['profile', 'email'] }));
- // router.get('/callback', passport.authenticate('google') )
- router.get('/callback', passport.authenticate('google', { failureRedirect: '/failed' }),
- function (req, res) {
- // res.redirect('/good')
- // console.log("success");
- // // Successful authentication, redirect home.
- res.status(200).json('ds');
- });
- //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;
|