如何正确使用Buffer.from?



我当前的代码使用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')

最新更新