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

无需企业授权,如何禁用Strapi默认登录页并跳转至strapi-plugin-sso

禁用Strapi默认登录页并跳转至SSO登录页(非企业版方案)

完全可以通过自定义中间件实现需求,无需依赖Strapi企业版授权。以下是具体实现步骤:

1. 创建自定义重定向中间件

在Strapi项目的src/middlewares目录下新建redirect-sso-login文件夹,创建index.js文件,写入以下代码:

module.exports = (config, { strapi }) => {
  return async (ctx, next) => {
    // 匹配Strapi v4版本默认登录页路径(旧版本可能为/admin/login)
    const isDefaultLoginPage = ctx.path === '/admin/auth/login';
    // 匹配默认登录接口的POST请求(可选,彻底禁用默认登录API)
    const isDefaultLoginApi = ctx.path === '/admin/auth/login' && ctx.method === 'POST';
    
    // 判断用户是否未登录(避免已登录用户被强制跳转)
    const isUnauthenticated = !ctx.state.user && !ctx.request.headers.authorization;

    if ((isDefaultLoginPage || isDefaultLoginApi) && isUnauthenticated) {
      // 重定向到strapi-plugin-sso的登录页,路径根据插件实际配置调整
      // 常见路径为/admin/sso/login或/admin/sso/oidc/login
      return ctx.redirect('/admin/sso/login');
    }

    await next();
  };
};

2. 注册自定义中间件

修改项目根目录下的config/middlewares.js,将自定义中间件添加到队列中,确保在strapi::admin之前执行:

module.exports = [
  'strapi::errors',
  'strapi::security',
  'strapi::cors',
  'strapi::poweredBy',
  'strapi::logger',
  'strapi::query',
  'strapi::body',
  'strapi::session',
  'strapi::favicon',
  'strapi::public',
  // 加入自定义重定向中间件
  './middlewares/redirect-sso-login',
  'strapi::admin',
];

3. 验证与测试

  1. 重启Strapi服务
  2. 访问原默认登录页(如http://your-strapi-domain/admin/auth/login),确认是否自动跳转到SSO登录页面
  3. 测试SSO登录流程,确保正常完成身份验证并进入Strapi后台

注意事项

  • 确认strapi-plugin-sso的实际登录路径:不同版本的插件可能使用不同端点,可查看插件文档或Strapi后台路由列表确认
  • 若需保留默认登录接口给特定场景,可删除代码中isDefaultLoginApi相关判断逻辑
  • 测试前建议清除浏览器缓存,避免旧页面缓存导致跳转不生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 23:18:26