📜  axios 标头基本授权 (1)

📅  最后修改于: 2023-12-03 14:39:26.252000             🧑  作者: Mango

Axios标头基本授权

Axios是一个流行的基于Promise的HTTP客户端,可以用于在浏览器和Node.js中发送HTTP请求。在许多情况下,需要对请求进行身份验证来访问受保护的资源。本文将介绍如何使用Axios发送带有基本身份验证头的HTTP请求。

基本身份验证

基本身份验证(Basic Authentication)是一种在HTTP请求标头中发送用户名和密码作为未加密Base64字符串来验证用户身份的方法。请求时,将用户凭据添加到Authorization标头中,并采用以下格式:

Authorization: Basic <Base64 encoded string>

以下是一个示例请求头:

Authorization: Basic ZXJpY2tzdGFydDpMdW1pbmcxMjM=

其中 ZXJpY2tzdGFydDpMdW1pbmcxMjM= 是将字符串 erickstart:Luming123 进行 Base64 编码后的结果。

在Axios中使用基本身份验证

Axios提供了一种简单的方法来在HTTP请求中添加基本身份验证标头。您可以配置Axios实例以拥有默认的身份验证标头,或者在单个请求中手动添加身份验证标头。

配置全局的身份验证标头

您可以使用Axios的defaults.headers.common属性来添加全局的身份验证标头。以下是一个例子:

const axios = require('axios');

axios.defaults.auth = {
  username: 'erickstart',
  password: 'Luming123'
};

现在,当您使用 Axios 发送请求时,该请求将自动包含上述身份验证标头。

在单个请求中使用身份验证标头

对于仅需要对某些请求进行身份验证的情况,可以通过将 auth 配置选项传递给Axios请求来添加身份验证标头。以下是一个例子:

const axios = require('axios');

axios.get('https://api.example.com/data', {
  auth: {
    username: 'erickstart',
    password: 'Lumign123'
  }
})
  .then(response => {
    // 处理响应
  })
  .catch(error => {
    // 处理错误
  });
完整示例

以下是一个完整的示例,其中使用 Axios 发送带有基本身份验证标头的 GET 请求:

const axios = require('axios');

axios.defaults.auth = {
  username: 'erickstart',
  password: 'Luming123'
};

axios.get('https://api.example.com/data')
  .then(response => {
    // 处理响应
  })
  .catch(error => {
    // 处理错误
  });
结论

现在,您已经了解如何使用Axios发送带有基本身份验证头的HTTP请求。如果需要访问受保护资源,则此技术可能非常有用。请确保以安全方式处理凭据,并在传输中对其进行加密以确保安全。