I’m getting this error whenever i’m trying to log a user in using passportjs, i checked in mongo collection and there is no username the same !
/Users//my-blog/api/node_modules/mongodb/lib/operations/insert.js:53 return callback(new error_1.MongoServerError(res.writeErrors[0])); ^ MongoServerError: E11000 duplicate key error collection: blog.users index: username_1 dup key: { username: “undefined_undefined” }
Auth.js
Code:
router.get("/facebook", passport.authenticate("facebook", {
scope: ["email"] }));
router.get("/auth/facebook/callback", passport.authenticate("facebook", {
successRedirect: "http://localhost:3000/",
failureRedirect: "/facebookLogin/failed"
}));
router.get("/facebookLogin/success", async (req, res)=>{
if(req.user){
const user = await User.findOne({provider_id: req.user.id,
provider: req.user.provider})
if(user){
res.status(200).json({
success: true,
message: "success",
user: user
})
}else{
const checkUserEmail = await User.findOne({email: req.user.email})
if(checkUserEmail){
res.status(401).json({
success: false,
message: "User already Exist with this email id",
})
}else{
const user = await User.create({
username: req.user.name.givenName+ "_" +req.user.name.familyName,
firstName: req.user.name.givenName,
lastName: req.user.name.familyName,
email: req.user.emails[0].value,
provider: req.user.provider,
provider_id: req.user.id,
profilePic: req.user.photos[0].value,
});
res.status(200).json({
success: true,
message: "success",
user: user
})
}
}
console.log("CURRNT USER: ", user);
}
})
router.get("/facebookLogin/failed", (req, res)=>{
if(req.user){
res.status(401).json({
success: false,
message: "failure",
})
}
})
What I’m missing here ?