部署Strapi应用至Heroku时遇jwtSecret缺失错误求助
解决Strapi部署Heroku时的Missing jwtSecret错误
以下是几个排查和解决方向:
验证Heroku环境变量有效性
- 登录Heroku控制台,进入你的应用页面,点击「设置」→「配置变量」,确认
JWT_SECRET已添加且值不为空。 - 用Heroku CLI执行命令验证:
能正常输出变量值才说明环境变量配置生效。heroku config:get JWT_SECRET -a 你的应用名称
- 登录Heroku控制台,进入你的应用页面,点击「设置」→「配置变量」,确认
检查plugins.js文件的路径与内容
- 确保文件放在Strapi项目的
config/目录下(Strapi v4要求路径为config/plugins.js;如果是v3版本,配置路径应为extensions/users-permissions/config/jwt.js)。 - 替换代码中的中文转义引号为英文引号,正确代码如下:
const crypto = require("crypto"); module.exports = ({ env }) => ({ "users-permissions": { config: { jwtSecret: env("JWT_SECRET") || crypto.randomBytes(16).toString("base64"), }, }, });
- 确保文件放在Strapi项目的
重启Heroku应用
环境变量或配置文件修改后必须重启应用才能生效,可通过Heroku控制台的「更多」→「重启所有dynos」操作,或执行CLI命令:heroku restart -a 你的应用名称适配Strapi版本调整配置
若使用Strapi v3,需将JWT配置放在extensions/users-permissions/config/jwt.js中,代码如下:module.exports = { jwtSecret: process.env.JWT_SECRET || require('crypto').randomBytes(16).toString('base64'), };检查APP_KEYS格式
Heroku中设置的APP_KEYS必须是逗号分隔的字符串(如key1,key2,key3),格式错误会导致Strapi配置加载异常,进而影响JWT_SECRET的读取。
内容的提问来源于stack exchange,提问作者George Garman
相关产品推荐
相关产品推荐

