2017-08-27 90 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中使用。非常感謝 –