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

1.1K
Vistas
¿Cómo resuelvo el error "Middleware "strapi::session": se requieren claves de aplicación" en mi implementación de Strapi en Heroku?

Estoy siguiendo las instrucciones oficiales para implementar mi aplicación de inicio strapi en Heroku. La aplicación funciona bien localmente. Lo único que omití en mis instrucciones de implementación fue instalar el módulo de nodo PG (ya está instalado porque mi aplicación local usa Postgresql).

Al acceder a los registros de Heroku, veo esto:

 error: Middleware "strapi::session": App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])

Tal vez este es un detalle importante: seguí este proceso una vez y todo funcionó. Pude desplegarme en Heroku. Lo intenté de nuevo y no funcionó. Estaba pensando que tal vez Heroku tenía un problema conmigo al reutilizar el nombre de una aplicación, pero traté de nombrar la aplicación con algo diferente en Heroku y todavía tenía el mismo error.

¿Heroku está buscando en el lugar equivocado mi archivo server.js? ¿Debería estar buscando en mi carpeta "./config/env/production" en lugar de mi carpeta "./config"?

Según las instrucciones, aquí está mi ./config/env/production/database.js

 const parse = require('pg-connection-string').parse; const config = parse(process.env.DATABASE_URL); module.exports = ({ env }) => ({ connection: { client: 'postgres', connection: { host: config.host, port: config.port, database: config.database, user: config.user, password: config.password, ssl: { rejectUnauthorized: false }, }, debug: false, }, });

Aquí está mi ./config/env/production/server.js

 module.exports = ({ env }) => ({ url: env('MY_HEROKU_URL'), });

Y aquí está mi ./config/server.js

 module.exports = ({ env }) => ({ host: env('HOST', '0.0.0.0'), port: env.int('PORT', 1337), app: { keys: env.array('APP_KEYS'), }, });

mi paquete.json por si acaso:

 { "dependencies": { "@strapi/plugin-graphql": "^4.0.0", "@strapi/plugin-i18n": "4.0.6", "@strapi/plugin-users-permissions": "4.0.6", "@strapi/strapi": "4.0.6", "lodash.set": "^4.3.2", "pg": "8.6.0", "pg-connection-string": "^2.5.0" }, "name": "backend", "private": true, "version": "0.1.0", "description": "A Strapi application", "scripts": { "develop": "strapi develop", "start": "strapi start", "build": "strapi build", "strapi": "strapi" }, "devDependencies": {}, "author": { "name": "A Strapi developer" }, "strapi": { "uuid": "f64b509e-2d95-4464-8d39-d6f0d1c7a31a", "template": "@strapi/template-corporate@^1.0.0", "starter": "@strapi/starter-next-corporate" }, "engines": { "node": ">=12.xx <=16.xx", "npm": ">=6.0.0" }, "license": "MIT" }

Estoy ejecutando Node v14.18.3 y NPM v6.14.15

over 4 years ago · Santiago Trujillo
4 Respuestas
Responde la pregunta

0

En Heroku, para esa aplicación en particular, navegue a Configuración-> Vars de configuración y agregue sus variables de entorno allí.

over 4 years ago · Santiago Trujillo Denunciar

0

Lo resolví con esto en ./config/env/production/server.js

 module.exports = ({ env }) => ({ url: env("MY_HEROKU_URL"), proxy: true, app: { keys: env.array("APP_KEYS", ["testKey1", "testKey2"]), }, });

testKey1, testKey2 son solo marcadores de posición y deben reemplazarse por 2 claves aleatorias a través de CONFIG VAR en heroku

 APP_KEYS=someSecret,anotherSecret

proxy: true también era importante. De lo contrario, arroja un Cannot send secure cookie over unencrypted connection

over 4 years ago · Santiago Trujillo Denunciar

0

simplemente cree un archivo .env en la raíz de su proyecto de esta manera:

 HOST=0.0.0.0 PORT=1337 APP_KEYS=jP8pb1lYsAhnmURarewxhA==,34xnLMYHY5jiU7ONTstTqQ==
over 4 years ago · Santiago Trujillo Denunciar

0

Por lo tanto, solo necesita crear una variable en la configuración de Heroku->config vars llamada APP_KEYS . Y el valor de esta variable puede obtenerse de su archivo .env donde debe tener la variable APP_KEYS con valor.

over 4 years ago · Santiago Trujillo 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