我当前的代码使用Buffer('username:password'(.toString('base64'(
这导致了弃用的警告,从而导致此修复:https://nodejs.org/fr/docs/guides/buffer-constructor-deprecation/
但是,在用buffer.from((替换缓冲区后,出现以下错误: 标头内容中的字符无效 ["授权"]
旧代码:
headers: { Authorization: 'Basic ' + Buffer(this.settings.NPS_USERNAME + ':' + this.settings.NPS_PASSWORD).toString('base64') },
新代码
headers: { Authorization: 'Basic ' + Buffer.from(this.settings.NPS_USERNAME + ':' + this.settings.NPS_PASSWORD, 'base64') },
要Buffer.from
的第二个参数指示第一个参数的输入格式。您告诉Buffer.from
期望输入USERNAME:PASSWORD
是 base64 编码的字符串,但这是错误的:输入显然不是 base64 编码的(尤其是因为它包含一个冒号,这不是有效的 base64 字符(。
相反,您希望指示输入的编码方式(可能utf8
(,然后像在原始代码中一样单独调用toString('base64')
以生成 base64 输出:
Buffer.from(USERNAME + ':' + PASSWORD, 'utf8').toString('base64')