代码之家  ›  专栏  ›  技术社区  ›  vicatcu

CORS/跨源隔离/谷歌API

  •  1
  • vicatcu  · 技术社区  · 5 年前

    我正在尝试将Zoom Web Video SDK集成到现有的Web应用程序中,出于性能原因,SharedArrayBuffer已成为一项要求,为了实现这一点,站点必须实现跨源隔离。我已经向NGINX添加了必要的配置,即:

    add_header 'Cross-Origin-Embedder-Policy' 'require-corp';
    add_header 'Cross-Origin-Opener-Policy' 'same-origin';
    

    ... 但是,这当然会对之前存在的其他工作场所产生连锁效应。谷歌API似乎再也无法成功加载了。

    我更改了index.html,将crossorigin属性添加到Google API脚本标记中,如下所示:

    <script src="https://apis.google.com/js/platform.js" async defer crossorigin></script>
    

    ... 在我的javascript源代码中,我已经(解释并降低复杂性以抓住要点):

    gapi.load('client:auth2', function() { 
      gapi.client
      .init({
         client_id: 'MY-CLIENT-ID',
         cookiepolicy: 'single_host_origin',
         discoveryDocs: ['https://classroom.googleapis.com/$discovery/rest?version=v1'],
         scope: 'profile email'
      })
      .then(() => console.log('init finished'))
      .catch(e) => console.error('init failed', e));
    });
    

    https://content-classroom.googleapis.com/static/proxy.html?usegapi=1& ... 还有很多其他东西我不确定是否敏感,所以我省略了

    当您深入到响应中时,它会显示:

    要从其他来源使用此资源,服务器需要 在响应标头中指定跨源资源策略:

    • 跨源资源策略:跨源仅当包含此资源的任意网站未强制执行 安全风险。

    更新

    0 回复  |  直到 5 年前
    推荐文章