1

情况是:

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

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

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

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

1 回答 1

1

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

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

看看这个问题这个问题。

于 2013-12-10T19:19:03.163 回答