📅  最后修改于: 2023-12-03 14:39:26.252000             🧑  作者: Mango
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提供了一种简单的方法来在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请求。如果需要访问受保护资源,则此技术可能非常有用。请确保以安全方式处理凭据,并在传输中对其进行加密以确保安全。