You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Strapi V4自定义插件路由无法通过API Token访问的解决方法咨询

解决Strapi V4自定义插件路由API Token验证问题

要让自定义插件的路由被API Token权限系统识别,需要完成以下几个关键配置步骤:

1. 给路由添加API Token认证策略

在src/plugins/{plugin_id}/server/routes/index.js中,为目标路由配置正确的auth策略和权限关联,示例如下:

module.exports = {
  routes: [
    {
      method: 'GET',
      path: '/your-custom-endpoint',
      handler: 'your-controller.your-action',
      config: {
        auth: {
          strategy: 'api-token', // 指定使用API Token认证
        },
        // 关联后续要注册的权限规则
        policies: ['plugin::your-plugin.access-custom-endpoint'],
      },
    },
  ],
};

2. 在插件中注册权限条目

新建src/plugins/{plugin_id}/server/permissions/index.js文件,注册自定义权限,让Strapi将其加入API Token的可选权限列表:

module.exports = {
  register({ strapi }) {
    // 定义权限动作,可根据需要添加多个
    const actions = [
      {
        section: 'plugins', // 权限归类到插件分组
        displayName: '访问自定义端点', // 在后台显示的权限名称
        uid: 'your-plugin.access-custom-endpoint', // 权限唯一标识,要和路由policies里的一致
        pluginName: 'your-plugin', // 你的插件ID
      },
    ];

    // 注册所有权限动作
    actions.forEach((action) => {
      strapi.admin.services.permission.actionProvider.register(action);
    });
  },
};

3. 重启Strapi并配置API Token

  • 重启Strapi服务,让新的权限配置生效
  • 进入后台生成API Token时,在「插件」分类下就能看到你注册的权限,勾选对应的权限后生成Token
  • 使用该Token访问自定义路由,即可正常通过API Token验证

注意事项

  • 确保pluginName和路由中plugin::your-plugin的your-plugin完全匹配插件实际ID
  • 不同的路由/操作可以注册不同的权限条目,实现更精细的权限控制

内容的提问来源于stack exchange,提问作者Drashti Kheni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 17:44:53