2015-10-19 75 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