Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

163
Visualizações
¿Cómo almacenar el parámetro de URL en el almacén de sesiones en Express.js?

Me gustaría usar MS OAuth en mi sitio web creado con Express.js.

En mi plan, las cosas serían así:

  1. El cliente visita localhost/register/ .
    En este punto, dado que configuré saveUninitialized of SqliteStore en true , se deben crear los datos de la sesión.
  2. El cliente hace clic en el botón 'Iniciar sesión con MS'.
    Redirigirá al cliente a la pantalla de inicio de sesión de MS y volverá a localhost/register/msauth/?code=blahblah .
  3. El servidor obtendrá una parte del code de la URL y la almacenará como msauth en la sesión ( req.session.msauth ), luego redirigirá al cliente a localhost/register .
    En este punto, los datos de la sesión tienen msauth como cadena.
  4. Dado que hay msauth en los datos de la sesión, cuando el usuario es 'redireccionado' a localhost/register/ , el servidor obtendrá msauth de los datos de la sesión y lo pasará con otras options .
    Uso pug como 'motor de plantilla', puedo acceder a msauth en .pug y hacer algo con él. Actualmente, dado que esta es la etapa de desarrollo, solo muestro el código de autenticación en el sitio web.

Entonces, cuando el cliente visita localhost/register/ , habría dos casos de si msauth está presente o no.

Este es mi código actual:

 // routes/register.js ... router.get('/', function (req, res) { let options = default_options; // Don't care about default_options, it's just predefined options object. if (res.sessions === undefined) { console.log('\x1b[36m%s\x1b[0m', 'session is undefined'); options['MSAuthCode'] = null; res.render('register', options); } else { console.log('\x1b[36m%s\x1b[0m', 'session is valid'); console.log(res.sessions); if ('msauth' in res.sessions) { options['MSAuthCode'] = res.sessions.msauth; console.log('msauth is ' + options.MSAuthCode); } res.render('register', options); } }); router.get('/msauth/', function (req, res) { console.log('\x1b[36m%s\x1b[0m', req.query.code); req.session.msauth = req.query.code; res.redirect('/'); }); ...

Esperaba que cuando visite localhost/register/msauth/?code=1000 después de visitar localhost/register , no crearía una nueva sesión y guardaría 1000 en msauth en los datos de la sesión.

Pero parece que solo crea una nueva sesión. 'la sesión no está definida' se imprime en la consola en cada actualización. Así que tengo dos sesiones en Sqlite3 DB. Uno son datos de sesión sin msauth y otro con msauth . Esto no debería pasar en mi 'teoría'...

No entiendo lo que está mal con mi código.

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda