Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

284
Views
Guardar usuarios en la base de datos mongodb

 const findOrCreate = require("mongoose-findorcreate"); // User schema const userSchema = new mongoose.Schema({ provider: { type: String, required: true }, email: String, password: String }); userSchema.plugin(findOrCreate); const User = new mongoose.model("User", userSchema); passport.use(User.createStrategy()); //----google-Oauth ----- passport.use(new GoogleStrategy({ clientID: process.env.GOOGLE_CLIENT_ID, clientSecret: process.env.GOOGLE_CLIENT_SECRET, callbackURL: "http://localhost:3000/auth/google/secrets", userProfileURL: "https://www.googleapis.com/oauth2/v3/userinfo" }, function(accessToken, refreshToken, profile, cb) { User.findOrCreate({ provider: profile.provider, googleId: profile.id }, function (err, user) { console.log(profile.id); return cb(err, user); }); } ));

Tengo 2 cuentas de Google, cuando me registro con una, se guarda una identificación en la base de datos para la primera cuenta, pero si me registro con la otra, también podré iniciar sesión, pero la identificación ganó No se guarda en la base de datos, mientras que ambos tienen una identificación generada por Google diferente si registro el perfil. Identificación en la consola (entiendo que la identificación mongodb generada es diferente de la de Google, pero la identificación de la segunda cuenta aún no está guardada en la base de datos). Sin embargo, cuando agregué el campo de identificación en el esquema de usuario (id: String, y también establecí el valor en profile.id en el método findorcreate), las dos cuentas se guardaron con la identificación generada por la base de datos y la identificación de Google en la base de datos. ¿Es que no puedo registrarme con dos cuentas sin configurar otro campo de identificación en el esquema de usuario?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

No hay un error: simplemente no ha definido googleId en ninguna parte de su esquema, por lo que está tratando de agregar algo que no existe en el esquema de usuario. Desafortunadamente, debe editar su esquema para agregar los datos de googleId. Si lo desea, tendrá que editar su esquema a algo como esto (como ejemplo)

 provider: { type: String, required: true }, email: String, password: String, googleId: {type: Number, required: false}

Esto significa que en su función User.findOrCreate() , creará un Usuario con el googleId como profile.id .

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!