Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

283
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda