es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La sesión de expresión (“express-session”) ha quedado obsoleta, por favor, proporcione la opción “secret”. La configuración no está funcionando a pesar de haber sido establecida.

const cors = require('cors');
const session = require('express-session');
const config = require('config');
var MemoryStore = require('memorystore')(session);

module.exports = function (app) {
    app.use(express.json());
    app.use(cors());
    app.use('/uploads', express.static('uploads'));
    app.use(
        session({
            saveUninitialized: false,
            cookie: { maxAge: 86400000 },
            store: new MemoryStore({
                checkPeriod: 86400000
            }),
            resave: false,
            secret: config.get('sStorage')
        })
    );
    app.use('/api/users', users);
}

Revisé todas las soluciones existentes proporcionadas, pero aún no me está funcionando. Estoy obteniendo este error:

express-session deprecated req.secret; provide secret option.

Funciona correctamente cuando reescribo el código de esta manera:

  secret: config.get('sStorage') || "testsecret"

Verifiqué mi variable de entorno para ver si sStorage está configurado y muestra que está definido. ¿Por qué la variable de entorno no se carga aquí en este caso específico usando el módulo de configuración?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está en el uso obsoleto de req.secret en el paquete express-session. Para resolver esto, necesitas proporcionar una opción secret al middleware session.

    El método config.get() se utiliza para cargar valores desde el archivo de configuración, pero parece que el valor de sStorage no se está cargando correctamente en este caso. Para asegurarte de que el middleware funcione correctamente, la opción secret se establece con un valor predeterminado de "testsecret".

    Para solucionar por qué el valor de sStorage no se está cargando correctamente, puedes intentar console.log el valor de config.get('sStorage') y ver si devuelve el valor esperado. Si no lo hace, debes comprobar si el archivo de configuración se está cargando correctamente y si el valor está definido correctamente en el archivo.

Comments are closed.