I use Passport
to implement the Google Login feature. However, when I send an axios
request from the react
client app, an error message appears on the chrome console.
Client Side - react (running on port 3000) :
Axios request in SignInForm.js
component (It is triggered when a user clicks login button):
googlelogin(){
axios.get('/api/users/google_auth')
.then(()=>console.log("success"))
.catch(err=>console.log(err))
}
Error message on the console :
Error: Network Error
at createError (createError.js:17)
at XMLHttpRequest.handleError (xhr.js:87)
Server side - node.js (running on port 5000) :
passport.js code :
passport.use(
new GoogleStrategy({
clientID: GOOGLE_CLIENT_ID,
clientSecret: GOOGLE_CLIENT_SECRET,
callbackURL: '/api/users/google_auth/redirect'
},
(accessToken, refreshToken, profile, done) => {
console.log("called")
User.findOne({email: profile.id})
.then(user => {
console.log('googleLogin');
done(null,user);
})
.catch(err => {
done(err,null,{message:'fail'})
})
}
)
);
routes/api/users.js code :
router.get('/google_auth',passport.authenticate('google',{
scope:['profile']
}),()=>{console.log("test")})
router.get('/google_auth/redirect',(req, res)=>{
res.send("hi")
})
Chrome Devtools network tap log:
I've already searched on Youtube, Google, Github, and StackOverflow. I don't know what to do to solve this problem.