2015-10-19 103 views
2

我正在製作Chrome擴展程序,通過api與網站進行通話。我希望它通過cors請求將關於當前選項卡的信息傳遞給我的網站。捲曲到Javascript

我有一個POST API請求已經工作。它看起來像這樣:

... 
var url = "https://webiste.com/api/v1/users/sendInfo" 
... 
xhr.send(JSON.stringify({user_name:user_name, password:password, info:info})); 

其對應的捲曲說法是這樣的:

curl -X POST https://website.com/api/v1/users/sendInfo -d '{ username:"username", password:"password", info: "Lot's of info" }' --header "Content-type: application/json 

但是,這是不是安全的,因爲我們想要的。我被告知要鏡像下面的捲曲命令:

curl --basic -u username:password <request url> -d '{ "info": "Lot's of info" }' 

但是,不能只是寫入捲曲到JavaScript。 如果有人可以提供像這個curl語句那樣的javascript,或者說明curl腳本的基本選項到底發生了什麼,我認爲我可以從那裏進步。

回答

4

curl命令設置爲basic Authorization header。這可以在JavaScript中完成,如

var url = "https://webiste.com/api/v1/users/sendInfo", 
    username = "...", 
    password = "..."; 
xhr.open('POST', url, true, username, password); 
xhr.send(...); 

這將使用base64編碼用戶名/密碼,並設置Authorization標頭。


編輯如前所述arcyqwerty,這是不大於在請求體JSON發送用戶名/密碼更安全。使用基本身份驗證方法的優勢在於它是指定用戶證書的標準方式,可以很好地與許多後端集成。如果您需要安全性,請確保通過HTTPS發送您的數據。

1

curl是提取URL的curl二進制文件。

--basic告訴curl使用 「HTTP Basic Authentication

-u username:password告訴curl供應驗證一個給定的用戶名/密碼。該請求中的身份驗證信息是base64 編碼的。注意編碼的重點不同於加密。 HTTP基本認證是安全(雖然它可以更安全的通過使用HTTPS信道)

-d告訴curl發送以下作爲該請求的數據

您可能能夠指定HTTP請求中的基本身份驗證請求https://username:[email protected]/api/v1/users/sendInfo