Javascript 从Axios错误响应中删除授权标头值

Javascript 从Axios错误响应中删除授权标头值,javascript,axios,Javascript,Axios,我使用Axios发送HTTP请求,这会导致错误。 当我打印错误对象时,它会打印包含授权头中的机密的请求 例如 这将在日志消息中的几个位置打印机密: Error: Request failed with status code 463 at createError (/code/node_modules/axios/lib/core/createError.js:16:15) at settle (/code/node_modules/axios/lib/core/settle.j

我使用Axios发送HTTP请求,这会导致错误。 当我打印错误对象时,它会打印包含授权头中的机密的请求

例如

这将在日志消息中的几个位置打印机密:

Error: Request failed with status code 463
    at createError (/code/node_modules/axios/lib/core/createError.js:16:15)
    at settle (/code/node_modules/axios/lib/core/settle.js:17:12)
    at IncomingMessage.handleStreamEnd (/code/node_modules/axios/lib/adapters/http.js:236:11)
    at IncomingMessage.emit (events.js:215:7)
    at IncomingMessage.EventEmitter.emit (domain.js:475:20)
    at endReadableNT (_stream_readable.js:1184:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) {
  config: {
  ...
    url: 'https://test.com/404',
    method: 'get',
    headers: {
      Accept: 'application/json, text/plain, */*',
      Authorization: 'secret',
      'User-Agent': 'axios/0.19.2'
    },
  },
  ...
  request: ClientRequest {
    _header: 'GET /404 HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Authorization: secret\r\n' +
      'User-Agent: axios/0.19.2\r\n' +
      'Host: www.test.com\r\n' +
      'Connection: close\r\n' +
      '\r\n',
  },
  ...
  response: {
    ...
    request: ClientRequest {
      _header: 'GET /404 HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Authorization: secret\r\n' +
        'User-Agent: axios/0.19.2\r\n' +
        'Host: www.test.com\r\n' +
        'Connection: close\r\n' +
        '\r\n',
    },
  },
}
我不想在日志消息中打印我的秘密。
有没有办法避免它呢?

这并不奇怪,但是为什么不在输出消息之前在消息上运行正则表达式呢

const ReRemoveSecret = new RegExp('secret', 'g');

.catch(msg => {
  console.log(msg.replace($ReRemoveSecret, ''));
});
我最终使用了

axios.interceptors.response.use({.identity,(error)=>{
删除error.config.headers.Authorization;
删除错误。请求。\u头;
返回承诺。拒绝(错误);
});

这与axios的内部对象结合在一起,因此它很脆弱,可能会断裂,但它现在解决了我的问题。

这只是一个象征。您没有公开客户端尚未访问的任何内容。在我的情况下,这是一个基本的身份验证头,其中包括一个base64编码的密码。我不想将密码打印到日志中,因为用户和不应该访问明文密码的进程都可以访问日志。用户可以随时查看reqest标题并看到相同的内容。您指的是哪个“用户”?发送请求的人。
const ReRemoveSecret = new RegExp('secret', 'g');

.catch(msg => {
  console.log(msg.replace($ReRemoveSecret, ''));
});