【问题标题】:Unable to load BigBlueButton in iframe无法在 iframe 中加载 BigBlueButton
【发布时间】:2020-07-31 13:48:04
【问题描述】:

我正在使用自定义 BBB 安装以在我的 Angular 应用程序中使用。我正在将redirect 设置为true 的iframe 中调用加入请求。 BBB 2.0 一切正常,但在我将其更新到 2.2 后,我收到错误 401 Unauthorised due to missing credentials

但是,如果我在新选项卡中提出相同的请求,它会加载会议。

还有另一种奇怪的行为。它甚至在 Mac 的 Chrome 上的 iframe 中也能正常工作。

2.2 发生了什么变化?我该如何解决这个问题?

【问题讨论】:

    标签: angular iframe bigbluebutton


    【解决方案1】:

    您是否碰巧在使用 Chromium、chrome 或任何基于 Chromium 的浏览器?

    我相信这与谷歌向一小部分用户推出Same-Site-By-Default (anti?-)feature 有关。我可以通过启用该功能来重现您的问题。如果您访问 chrome://flags/ 并将 SameSite by default cookie 设置为 Disabled,我相信您不会再遇到这些问题了。

    如果这有帮助,那么您必须确保 BBB 发送正确的 set-cookie-headers 以解决其他启用了“SameSite by default cookie”的 chrome 浏览器的问题。将 SameSite=none 添加到 Set-Cookie 标头应该可以工作。

    解决此问题的最简单方法可能是在同一站点上运行包含 iframe 和 bbb 实例的网站。 This post explains which two domains qualify as "same site".

    【讨论】:

    • 默认禁用 SameSite 有效,但现在我需要修改 BBB 发送的 cookie,因为我不能指望每个用户都为他们的浏览器应用此修复程序。梳理代码库,到目前为止还没有运气。
    • 或者,您可以确保在同一站点上运行 bbb 和您的应用程序。相同站点是指它们的 URL 具有相同的二级域 - 前提是 2ld 不在 public suffix list
    • 您在 html5 nginx conf 文件中的位置 /html5..... 中标记 cookie,例如 proxy_cookie_path / "/;secure; HttpOnly; SameSite=none";
    【解决方案2】:

    为了让它工作,我添加了

     allowRequestsWithoutSession=true
    

    /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties 中(然后记得用 bbb-conf --restart 重启 BBB)

    然后我使用这个 iframe 来启用所有功能(屏幕共享、全屏...)

     <IFRAME allow="geolocation *; microphone *; camera *; display-capture *;" allowFullScreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" sandbox="allow-same-origin allow-scripts allow-modals allow-forms" style='width:100%;height:100%;border:0' scrolling="no"></IFRAME>
    

    注意:带有 iframe 的页面必须在 https 网站上,否则您只会看到深蓝色的空白屏幕。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-19
      相关资源
      最近更新 更多