如何从浏览器获取基本身份验证信息

Posted

技术标签:

【中文标题】如何从浏览器获取基本身份验证信息【英文标题】:How can I get basic auth information from browser 【发布时间】:2019-08-08 14:53:49 【问题描述】:

我的后端需要基本的 auth Authorization 标头。

'Authorization': 'Basic dXNlcm5hbWU6cGFzc3dvcmQ'

我遇到的问题是,我需要使用浏览器中的本机基本身份验证提示,但我不知道如何在我的 javascript 前端应用程序中获取基本身份验证信息。换句话说:我需要从浏览器的基本身份验证属性中获取用户名和密码。

谁能告诉我如何从浏览器原生基本身份验证提示中获取基本身份验证信息?

【问题讨论】:

[How to assign basic authentication header to XMLHTTPREQUEST?]的可能重复项(***.com/questions/51332747/… 【参考方案1】:

要从后端获取令牌请求(例如登录请求)作为响应,您将获得可以保存在 s 中的令牌

// Store
sessionStorage.setItem("Authorization", "dXNlcm5hbWU6cGFzc3dvcmQ");
// Retrieve
let token = sessionStorage.getItem("Authorization");

对于 API 调用使用 fetch

用于添加授权头代码

   let token = sessionStorage.getItem("Authorization");
    var headers = new Headers();
    headers.append("Authorization", "Basic " +token;

    fetch("https://url", 
        headers: headers
      )
      .then((response) =>  ... )
      .done();

【讨论】:

我知道如何将它添加到请求中。我不知道如何从浏览器中获取它... @LorenzPfisterer 我已经更新了我的答案。如果有任何困惑或帮助,请告诉我 问题是Authorization标头的值不是静态的。它由用户使用浏览器本机基本身份验证提示提供。我不知道如何获得这些信息。 @LorenzPfisterer 喜欢这个blog.stevensanderson.com/2008/08/25/… @LorenzPfisterer 你可以试试javaxt.com/wiki/Tutorials/Javascript/…

以上是关于如何从浏览器获取基本身份验证信息的主要内容,如果未能解决你的问题,请参考以下文章

如何从具有基本身份验证的 rest api 获取数据?

如何从 AJAX 调用触发浏览器的基本身份验证对话框?

摘要式身份验证:从 javascript 获取浏览器存储的用户名

如何从网站获取 Facebook 身份验证令牌

在 Kong 中启用基本身份验证和会话插件时如何获取用户 ID?

在 JAVA 中通过身份验证后如何获取 okta 用户详细信息/当前会话