You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Axios请求中携带API密钥与密码调用BambooHr API并解决CORS问题

BambooHr API 认证与CORS问题解决方案

一、实现Basic认证

BambooHr API采用Basic认证机制,需要将API密钥和密码组合后进行Base64编码,再通过请求头传递,具体实现步骤如下:

  1. 拼接认证字符串:按 ${你的API密钥}:${你的密码} 格式组合,BambooHr允许密码为空(即仅写API密钥:即可)。
  2. 编码字符串:
    • 浏览器环境使用原生 btoa() 方法
    • Node.js环境使用 Buffer.from().toString('base64') 方法
  3. 在axios请求中添加Authorization请求头

浏览器环境代码示例

const apiKey = '你的API密钥';
const password = '你的密码'; // 可以是空字符串
const authToken = btoa(`${apiKey}:${password}`);

axios.get('https://api.bamboohr.com/api/gateway.php/companyDomain/v1/employees/2223/photo/large', {
  headers: {
    'Authorization': `Basic ${authToken}`
  }
})
.then(res => console.log("response ", res))
.catch(err => console.error('请求出错:', err));

Node.js环境代码示例

const axios = require('axios');
const apiKey = '你的API密钥';
const password = '你的密码'; // 可以是空字符串
const authToken = Buffer.from(`${apiKey}:${password}`).toString('base64');

axios.get('https://api.bamboohr.com/api/gateway.php/companyDomain/v1/employees/2223/photo/large', {
  headers: {
    'Authorization': `Basic ${authToken}`
  }
})
.then(res => console.log("response ", res))
.catch(err => console.error('请求出错:', err));

二、解决CORS错误

前端直接调用BambooHr API会触发浏览器同源策略限制,导致CORS错误,推荐以下两种解决方案:

  • 后端代理请求:搭建一个自己的后端服务(如Node.js、Java等),前端调用该后端接口,由后端负责转发请求到BambooHr API。这种方式既解决了跨域问题,还能避免API密钥暴露在前端代码中,是最优方案。
  • 配置BambooHr CORS白名单:若使用的是BambooHr企业版,可联系管理员将你的前端域名加入CORS允许列表。但此方法仍存在API密钥泄露风险,不推荐直接在前端调用API。

内容的提问来源于stack exchange,提问作者user20042604

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 11:15:33