【问题标题】:Passing basic auth credentials when navigating in browser在浏览器中导航时传递基本身份验证凭据
【发布时间】:2013-10-08 07:46:26
【问题描述】:

情况是:

  • 用户在网站上http://foo.com/ 在一个浏览器标签中
  • 此网站需要有一个链接/按钮,可以在新标签页中打开https://bar.com/
  • https://bar.com/ 使用基本身份验证,而 foo.com 希望自动传递这些凭据,这样浏览器就不会提示用户。

这里明显的答案是在 URL 中传递凭据,例如https://user:password@bar.com。不幸的是,这种良好的旧语法并不适用于所有浏览器(不适用于最新的 IE)。

我正在寻找一种适用于所有主要浏览器的替代方案。例如可能是这样的:

  • foo.com 页面构建授权标头(通过 base 64 编码凭据,...)
  • 以某种方式将这些标头注入到发送到https://bar.com/ 的请求中,这样请求就可以在没有用户提示的情况下获得授权。

【问题讨论】:

    标签: http basic-authentication


    【解决方案1】:

    即使您能够在第一次请求时将凭据发送到站点,除非浏览器知道凭据的内容,否则如果用户导航到另一个页面,它必须再次提示用户输入这些凭据受基本身份验证保护的同一个 (bar.com) 站点。

    如果您可以控制 bar.com 站点,那么您可以考虑使用由 foo.com 生成的令牌的替代身份验证方案,然后 bar.com 会对其进行解释,如果有效,则初始化其会话以查看cookie,而不是要求对未来的请求进行基本身份验证。

    看看this questionthis one

    【讨论】:

    • 这个想法是有一个解决方案,最终缓存域的凭据。如果您使用“嵌入式凭据”解决方案(在某些浏览器上效果很好,但不是全部),就会发生这种情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 2010-12-08
    相关资源
    最近更新 更多