前言: 在开发后端接口中, 拿一个外部接口, 需要经过后端处理后, 在转发到内部 API 中, 而这接口刚好用了BasicAuth 认证, 以下就简单的实现一下.
如图1, 在浏览器直接打开, 会有一个弹窗提示输入用户名和密码, 输入之后就可以拿到接口响应数据.
如图2, 可以在接口调试中直接输入用户名和密码取得响应数据
那么在代码中要怎么实现了, 关键是要把用户名和密码按规定的格式进行 base64, 然后放在 headers 的 Authorization 中.
上代码.
const username = 'user'
const password = 'xxx'
// 关键在这个格式.要进行 base64
const authHeader = 'Basic ' + Buffer.from(`${username}:${password}`).toString('base64');
Logger.debug('authHeader: ', authHeader)
const url = 'https://www.test.com';
const config = {
method: 'GET',
headers: {
Authorization: authHeader
},
// params: getParam
};
try {
const response = await fetch(url, config);
if (!response.ok) {
throw new Error('Network response was not ok');
}
const data = await response.json();
return data;
} catch (error) {
console.error('Error fetching data:', error);
}