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

<iframe>不响应302响应

  •  0
  • Max  · 技术社区  · 6 年前

    我有一个交叉起源的框架 https://b.example.com/some/uri/ 嵌入 https://a.example.com 嵌入式网站会自动转到openID身份验证提供商,但在服务器返回302重定向时遇到问题。

    这就是请求的样子:

    Request URL: https://oidc.example.com/openid/auth/?client_id=CLIENT_ID&redirect_uri=https://b.example.com/callback&response_type=code
    Request Method: GET
    Status Code: 302 Found
    

    但是响应头看起来不同

    如果 b.example.com

    Connection: keep-alive
    Content-Length: 0
    Content-Type: text/html; charset=utf-8
    Date: Tue, 13 Aug 2019 17:53:32 GMT
    **Location: https://b.example.com/callback?code=CODE**
    Server: nginx
    Vary: Cookie
    

    如果 b.e.example.com a.example.com

    Connection: keep-alive
    Content-Length: 0
    Content-Type: text/html; charset=utf-8
    Date: Tue, 13 Aug 2019 17:52:08 GMT
    **Location: /login/?next=/openid/auth/?client_id=CLIENT_ID&redirect_uri=https://b.example.com/callback&response_type=code**
    Server: nginx
    Vary: Cookie
    

    所以我需要iframe对302做出反应,就像它在新标签页中作为独立网站打开一样。我试着加上 Content-Security-Policy 标题

    Content-Security-Policy: frame-ancestors 'self' https://oidc.example.com https://b.example.com https://a.example.com
    

    但没用。有没有办法让iframe对302个响应做出反应?

    0 回复  |  直到 6 年前