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

Superset是否有内置API可绕过登录直接打开仪表盘?

Superset免登录直接访问仪表盘的实现方法

你之前操作跳转登录页的核心原因是:仅调用登录接口拿到令牌后,没有将令牌放入Superset可识别的请求上下文,浏览器直接访问仪表盘URL时默认不会携带你拿到的令牌,后端会判定为未登录状态,因此触发跳转。

目前有两种官方支持的可行实现方案:


方案1:使用官方内置访客令牌(Guest Token,推荐)

这是Superset专门为嵌入、免登访问场景设计的功能,不需要处理Cookie,安全性更高。

  • 第一步:先开启嵌入功能配置,在superset_config.py中添加配置项,修改后重启Superset服务
    FEATURE_FLAGS = {"EMBEDDED_SUPERSET": True}
    # 可按需调整访客令牌有效期,默认300秒
    GUEST_TOKEN_JWT_EXP_SECONDS = 86400
    
  • 第二步:调用登录接口获取管理员权限的接口调用凭证,请求地址为POST /api/v1/security/login,请求头指定Content-Type: application/json,请求Body示例:
    {
      "username": "你的管理员账号",
      "password": "你的管理员密码",
      "provider": "db",
      "refresh": true
    }
    
    接口返回的access_token值,需要作为后续接口的身份凭证,放在请求头Authorization: Bearer <access_token>中。
  • 第三步:调用POST /api/v1/guest_token生成目标仪表盘的专属访客令牌,请求Body示例:
    {
      "resources": [{"type": "dashboard", "id": "目标仪表盘ID"}],
      "rls": [],
      "user": {"username": "自定义访客名", "first_name": "自定义", "last_name": "自定义"}
    }
    
  • 第四步:访问仪表盘时,在URL后拼接参数?guest_token=<你生成的访客令牌>,即可直接访问无需登录,嵌入iframe场景也可以用该拼接后的URL直接作为iframe的src属性值。

方案2:Cookie写入登录令牌(适合内部自用场景)

如果不需要嵌入,仅需要本地JS调用后直接访问,可以将登录拿到的令牌写入当前域名的Cookie中,Superset会自动读取该Cookie校验身份:

  • 调用POST /api/v1/security/login拿到access_token后,执行JS代码写入Cookie:
    document.cookie = `access_token=${你拿到的access_token}; path=/; SameSite=Lax`;
    
  • 写入完成后再访问仪表盘URL,就不会触发登录跳转。
  • 注意:该方案需要自行处理令牌过期后的续期逻辑,默认access_token有效期较短。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:15:03