管理员面板 Admin panel

Strapi 的管理面板为其配置提供了一个单一的入口点文件。

./config/admin.js 用于定义 Strapi 应用程序的管理面板配置。

可用选项

./config/admin.js 文件可以包含以下参数:

参数描述类型默认
apiToken.salt用于生成 API 令牌 的 Salt字符串随机字符串
auditLogs.enabled启用或禁用 审计日志 功能布尔值true
auditLogs.retentionDays审计日志 的保留时间(以天为单位)。

自托管客户和 Strapi Cloud 客户的行为不同,请参阅表格下方的注释。
整数90
auth身份验证配置对象-
auth.secret用于编码 JWT 令牌的密钥字符串undefined
auth.domain用于 SSO 身份验证的 cookie 中使用的域(仅限企业)字符串undefined
auth.providers用于 SSO 的身份验证提供程序列表(仅限企业,请参阅 SSO)数组(对象)-
auth.options传递给 jsonwebtoken 的选项对象对象-
auth.options.expiresInjsonwebtoken 中使用的 JWT 过期时间对象30d
auth.events为身份验证注册的所有事件订阅者的记录对象{}
auth.events.onConnectionSuccess当管理员用户成功登录管理面板时调用的函数functionundefined
auth.events.onConnectionError当管理员用户无法登录管理面板时调用的函数functionundefined
url管理面板的 URL。默认值:/admin。注意:如果 URL 是相对的,它将与 url 连接。string/admin
autoOpen启用或禁用启动时打开管理。booleantrue
watchIgnoreFiles添加开发期间不应监视的自定义文件。更多信息请参见此处(属性 ignored)。array(string)[]
host为管理面板使用不同的主机。仅与 strapi evolve --watch-admin 一起使用字符串localhost
port为管理面板使用不同的端口。仅与 strapi evolve --watch-admin 一起使用字符串8000
serveAdminPanel如果为 false,则不会提供管理面板。注意:仍将提供 index.html,请参阅 defaultIndex 选项布尔值true
flags用于打开或关闭管理员的某些功能或元素的设置对象{}
flags.nps启用/禁用净推荐值弹出窗口布尔值true
flags.promoteEE启用/禁用 Strapi Enterprise 功能的推广布尔值true
forgotPassword自定义忘记密码电子邮件的设置(请参阅 忘记密码电子邮件)对象{}
forgotPassword.emailTemplate定义在 电子邮件插件中的电子邮件模板 object默认模板
forgotPassword.from发件人邮件地址字符串定义在
你的 提供商配置
forgotPassword.replyTo要求接收方回复的默认地址字符串默认值定义在
你的提供程序配置
rateLimit用于自定义管理面板身份验证端点的速率限制的设置,其他配置选项来自 koa2-ratelimitobject{}
rateLimit.enabled启用或禁用速率限制器booleantrue
rateLimit.interval将请求视为同一速率限制存储桶的一部分的时间窗口object{ min: 5 }
rateLimit.max时间窗口中允许的最大请求数integer5
rateLimit.delayAfter延迟响应之前允许的请求数integer1
rateLimit.timeWait响应请求之前等待的时间(以毫秒为单位)整数3000
rateLimit.prefixKey速率限制键的前缀字符串${userEmail}:${ctx.request.path}:${ctx.request.ip}
rateLimit.whitelist速率限制白名单中的 IP 地址数组数组(字符串)[]
rateLimit.store速率限制存储位置(内存、Sequelize 或 Redis),有关更多信息,请参阅 koa2-ratelimit 文档对象MemoryStore
transfer.token.salt用于生成 转移令牌 的盐。
如果没有定义转移令牌盐,转移功能将被禁用。
字符串随机字符串
自托管用户与 Strapi Cloud 用户的保留天数

对于 Strapi Cloud 客户,将使用存储在许可证信息中的 auditLogs.retentionDays 值,除非在 config/admin.js|ts 配置文件中定义了较小的 retentionDays 值。

配置

./config/admin.js 文件至少应包含最低配置,其中包含身份验证和 API 令牌 所需的参数。完整配置中可以包含其他参数。

环境配置(即使用 env() 帮助程序)不需要包含所有值,只要它们存在于默认的 ./config/server.js 中即可。

最小配置

任何新项目创建的默认配置至少应包括以下内容:

js
./config/admin.js
js
module.exports = ({ env }) => ({
  apiToken: {
    salt: env('API_TOKEN_SALT', 'someRandomLongString'),
  },
  auditLogs: { // only accessible with an Enterprise plan
    enabled: env.bool('AUDIT_LOGS_ENABLED', true),
  },
  auth: {
    secret: env('ADMIN_JWT_SECRET', 'someSecretKey'),
  },
  transfer: {
    token: {
      salt: env('TRANSFER_TOKEN_SALT', 'anotherRandomLongString'),
    }
  },
})

Full configuration

js
./config/admin.js
js
module.exports = ({ env }) => ({
  apiToken: {
    salt: env('API_TOKEN_SALT', 'someRandomLongString'),
  },
  auditLogs: { // 仅通过企业计划即可访问
    enabled: env.bool('AUDIT_LOGS_ENABLED', true),
    retentionDays: 120,
  },
  auth: {
    events: {
      onConnectionSuccess(e) {
        console.log(e.user, e.provider)
      },
      onConnectionError(e) {
        console.error(e.error, e.provider)
      },
    },
    options: {
      expiresIn: '7d',
    },
    secret: env('ADMIN_JWT_SECRET', 'someSecretKey'),
  },
  url: env('PUBLIC_ADMIN_URL', '/dashboard'),
  autoOpen: false,
  watchIgnoreFiles: [
    './my-custom-folder', // Folder
    './scripts/someScript.sh', // File
  ],
  host: 'localhost', // Only used for --watch-admin
  port: 8003, // Only used for --watch-admin
  serveAdminPanel: env.bool('SERVE_ADMIN', true),
  forgotPassword: {
    from: 'no-reply@example.com',
    replyTo: 'no-reply@example.com',
  },
  rateLimit: {
    interval: { hour: 1, min: 30 },
    timeWait: 3 * 1000,
    max: 10,
  },
  transfer: {
    token: {
      salt: env('TRANSFER_TOKEN_SALT', 'anotherRandomLongString'),
    }
  },
})