2017-08-27 35 views
0

我想使用Base64编码将用户名和密码发送到服务器。在Angular 4中使用Base64编码

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

npm install --save angular-base64 

我核实,下面的文件夹在我的项目foler创建:node_modules \角的base64

在我component.js文件我试图用任何以下行的进口组件:

import 'angular-base64/angular-base64'; 

它不抱怨的进口,但是当我尝试使用以下行:

headers.append('Authorization', 'Basic ' + base64.encode('username:temppass')); 

它说: “找不到的base64”。

+0

如果您因为安全性而这样做,则会失败。在处理秘密时,使用https(TLS,SSL a.s.o) –

+0

@stefanbachert仍然需要发送加密的密码,因为服务器端代码需要它。 –

+0

使用[angular-base64](https://github.com/ninjatronic/angular-base64)库时,请确保以美元符号“$',即$ base64.encode('username:temppass “)'。 – georgeawg

回答

8

为此目的,您并不需要外部库。

的WindowOrWorkerGlobalScope.btoa()方法创建一个基64编码的 ASCII字符串从在其中在 串中的每个字符都被当作二进制数据的字节字符串对象。

使用btoa()功能编码:

console.log(btoa("username:temppass")); // dXNlcm5hbWU6dGVtcHBhc3M=

为了解码,可以使用atob()功能:

console.log(atob("dXNlcm5hbWU6dGVtcHBhc3M=")); // username:temppass

查看支持的浏览器列表here

+0

是的,工作。但是当我在Angular4中寻找某些东西时,我错了,但我没有想到它可以在简单的JS中使用。非常感谢 –