You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Apache Superset Embedded SDK嵌入仪表盘时遇GET Theme 401授权缺失错误

Superset Embedded SDK 用Guest Token嵌入时主题API 401问题排查

可能的问题点和解决办法

  • Guest Token未包含主题访问权限
    生成Guest Token时,得给对应的访客角色加上主题的读取权限。默认访客角色大概率没有这个权限,去Superset后台的角色管理页面,找到你用的访客角色,给它添加Theme模型的read权限。另外生成Token的payload里,要明确把目标主题ID(比如你的6)加到允许访问的资源列表里,示例片段:

    {
      "user": {
        "username": "guest_user",
        "first_name": "Guest",
        "last_name": "User"
      },
      "resources": [
        {
          "type": "dashboard",
          "id": "你的仪表盘ID"
        },
        {
          "type": "theme",
          "id": 6
        }
      ],
      "rls": []
    }
    
  • 主题未开放嵌入场景访问权限
    去Superset的主题管理页面查看ID为6的主题,确认它的可见范围包含嵌入场景,否则嵌入模式下无法访问该主题。

  • V6.0.0rc2预发布版本的潜在Bug
    作为候选版本,可能存在嵌入场景下主题API未正确校验Guest Token的问题。可以尝试两个方向:一是升级到更新的rc版本或正式版,看是否修复了该问题;二是临时绕过,初始化SDK时直接指定主题名称,不让它自动请求主题API,示例代码:

    const embed = new SupersetEmbedSdk({
      supersetDomain: 'https://你的Superset域名',
      guestToken: '你的Guest Token',
      theme: '你的自定义主题名称'
    });
    
  • Guest Token传递异常
    打开浏览器开发者工具的Network面板,查看那个GET主题的请求头里是否包含Authorization: Bearer <你的Guest Token>。如果没有,检查SDK初始化代码是否写错,或者有没有请求拦截器修改了请求头。


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

火山引擎 最新活动