Superset 访客令牌返回登录页面

问题描述 投票:0回答:1

我正在尝试将仪表板嵌入到另一个站点的 iframe 中。这两个站点都仅使用 HTTP。这是超集文件中的配置

PUBLIC_ROLE_LIKE_GAMMA: True
SESSION_COOKIE_SECURE = False
SESSION_COOKIE_SAMESITE = 'LAX'
SESSION_COOKIE_HTTPONLY = True
PUBLIC_ROLE_LIKE: 'Gamma'
HTTP_HEADERS = {'X-Frame-Options': 'ALLOWALL'}

后端代码如下:

myobj = {
  "user": {
    "username": "username",
    "first_name": "*****",
    "last_name": "*****"
  },
  "resources": [{
    "type": "dashboard",
    "id": "1"
  }],
  "rls": []
  
}

login = requests.post(login_url, json={"password": "Password$","provider": "db","refresh": True, "username": "username"})
login_response = json.loads(login.text)

headers = {'Authorization': f"Bearer {login_response['access_token']}"}

csrf = requests.get(csrf_url, headers = headers)

csrf_token = json.loads(csrf.text)['result']
headers_csrf = {
    'accept': 'application/json',
    'Authorization': f"Bearer {login_response['access_token']}",
    'Referer': csrf_url,
    'X-CSRFToken': csrf_token,
}
print(headers_csrf)
guest_token = requests.post(guest_token_url, json = myobj, headers = headers_csrf)

guest_token = json.loads(guest_token.text)['token']
print(guest_token)

final_url = f"http://superset.hookit.korenet.local?token={guest_token}&next=/superset/dashboard/p/jWQx9XBR4Bw/?standalone=true"

后端代码生成以下 URL,该 URL 插入到另一个站点的 iFrame 中:

http://superset.domain.local?token=*************************.eyJ1c2VyIjp7Imxhc3RfbmFtZSI6IkthbnNhcmEiLCJ1c2VybmFtZSI6InRrYW5zYXJhIiwiZmlyc3RfbmFtZS****************************************Ym9hcmQiLCJpZCI6IjEifV0sInJsc19ydWxlcyI6W10sImlhdCI6MTcwNDY2MDYzNS42ODgwMDYyLCJleHAiOjE3MDQ2NjA5MzUuNjg4MDA2MiwiYXVkIjoiaHR0cDovLzAuMC4wLjA6ODA4MC8iLCJ0eXBlIjoiZ3Vlc3QifQ.t2SZsWg66njR1He20cAcMA9mhkafuCZBqrX58jabqbo&next=/superset/dashboard/p/jWQx9XBR4Bw/?standalone=true

问题是 iFrame 始终只显示登录页面。我在隐身窗口中尝试了 URL,这也显示了登录页面。 对我做错了什么有什么想法吗?我们希望以访客用户身份查看仪表板,因为外部用户需要查看其他站点中的仪表板。

感谢您的帮助。 问候

python embed apache-superset
1个回答
0
投票

该功能仅在使用 supersetEmbeddedSdk.embedDashboard 函数嵌入仪表板时才起作用。

© www.soinside.com 2019 - 2024. All rights reserved.