在Angular 4中使用Base64编码

Nav*_*ran 6 base64 encoding module angular

我想使用Base64编码将用户名和密码发送到服务器.

我发现我可以使用npm导入以下模块:

    npm install --save angular-base64
Run Code Online (Sandbox Code Playgroud)

我已经验证在我的项目foler中创建了以下文件夹:node_modules\angular-base64

在我的component.js文件中,我尝试使用以下任何一行来导入组件:

    import 'angular-base64/angular-base64'; 
Run Code Online (Sandbox Code Playgroud)

它不会抱怨导入,但是当我尝试使用以下行时:

    headers.append('Authorization', 'Basic ' + base64.encode('username:temppass'));
Run Code Online (Sandbox Code Playgroud)

它说" 找不到base64 ".

tru*_*k18 25

你并不真的需要一个外部库来实现这个目的.

WindowOrWorkerGlobalScope.btoa()方法从String对象创建base-64编码的ASCII字符串,其中字符串中的每个字符都被视为二进制数据的字节.

使用btoa()函数编码:

console.log(btoa("username:temppass")); // dXNlcm5hbWU6dGVtcHBhc3M=
Run Code Online (Sandbox Code Playgroud)

要解码,您可以使用以下atob()功能:

console.log(atob("dXNlcm5hbWU6dGVtcHBhc3M=")); // username:temppass
Run Code Online (Sandbox Code Playgroud)

请在此处查看支持的浏览器列表

  • btoa() 不能用于对超出 Latin1 范围的字符进行编码。 (7认同)
  • @Shadoweb 现在应该使用 `Buffer.from(<string>).toString('base64')` 而不是 `btoa()` (2认同)