Adding google auth on mern app

I’m trying to add google authentiation in mern app after checking tutorials and searching I cannot find a suitable method

I set authentication stratergy with passort.js but dont know how to combine it with react

I tried react-google-login but it works on react and I dunno how to send user data to node for saving into database

Hey there,

what could any help look like?

Please provide us:

  • some code (that doesn’t work)
  • the material you’ve read/watched

You are talking about passport.js.
Did you read the docs of passport?

What has happened when you followed the instructions in the documentation??

1 Like

this is my passport.js file

const GoogleStratergy = require('passport-google-oauth20').Strategy
const mongoose = require('mongoose')
const User = require('../../models/User')

module.exports = function(passport){

passport.use(new GoogleStratergy({
        clientID:process.env.GOOGLE_CLIENT_ID,
        clientSecret:process.env.GOOGLE_CLIENT_SECRET,
        callbackURL:'/auth/google/callback'
    },async (accessToken,refreshToken,profile,done)=>{
        const newUser = {
            googleId:profile.id,
            displayName:profile.displayName,
            firstName:profile.name.givenName,
            lastName:profile.name.familyName,
            image:profile.photos[0].value
        }
        try{
            let user = await User.findOne({googleId:profile.id})
            if(user){
                done(null,user)
            }
            else{
                user = await User.create(newUser)
                done(null,user)
            }
        }
        catch{
            console.log(err)
        }
    }))
    
    passport.serializeUser((user, done)=>{
        done(null, user.id);
    });

    passport.deserializeUser((id, done)=>{
        User.findById(id,(err, user)=>{
        done(err, user);
  });
    });
}

it has no issues its working properly but I want to use with react how can I do that

tutorials that I watched

these dont have what I require cuz I want to sign in using react fornt end and then save that data using mongoose in node

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.