如何在其他开发环境运行克隆的Strapi项目并修复apiToken.salt缺失错误
错误信息
⠼ Loading Strapi[ERROR] There seems to be an unexpected error, try again with --debug for more information
┌──────────────────────────────────────────────────────────────────────┐
│ Error: Missing apiToken.salt. Please set apiToken.salt in │
│ config/admin.js (ex: you can generate one using Node with │
│ crypto.randomBytes(16).toString('base64')). │
│ For security reasons, prefer storing the secret in an │
│ environment variable and read it in config/admin.js. │
└──────────────────────────────────────────────────────────────────────┘
修复步骤
1. 生成apiToken.salt值
打开终端执行以下Node命令,生成随机安全salt:
node -e "console.log(require('crypto').randomBytes(16).toString('base64'))"
复制输出的字符串备用。
2. 配置apiToken.salt
有两种配置方式,推荐使用环境变量保障安全性:
方式一:直接写入配置文件
找到项目根目录下的config/admin.js,添加apiToken配置项:
module.exports = ({ env }) => ({ auth: { secret: env('ADMIN_JWT_SECRET'), }, apiToken: { salt: '替换成你刚才生成的salt字符串', }, // 保留原有其他配置 });
方式二:通过环境变量配置(推荐)
- 在项目根目录的
.env文件中新增变量:
ADMIN_API_TOKEN_SALT=替换成你刚才生成的salt字符串
- 修改
config/admin.js读取环境变量:
module.exports = ({ env }) => ({ auth: { secret: env('ADMIN_JWT_SECRET'), }, apiToken: { salt: env('ADMIN_API_TOKEN_SALT'), }, // 保留原有其他配置 });
3. 重启Strapi
保存修改后,执行启动命令:
npm run develop
内容的提问来源于stack exchange,提问作者Yuga Raj

