1
我正在开发一个应用程序,并将其作为身份验证方法使用基本身份验证。到目前为止,一切工作都很顺利,但显然我仍然在做一些错误的事情,就像新的合作伙伴所表明的那样使用curl对node.js进行基本身份验证
特别地,命令的形式为:
curl -v -H 'Authorization: Basic test:test' -H 'APP_KEY: AN-APP-KEY' -H 'APP_SECRET: XyZ' http://localhost:3000/auth
成功,并且我接收服务器上的标头是这样的:
{
"user-agent": "curl/7.37.1",
"host": "localhost:3000",
"accept": "*/*",
"authorization": "Basic test:test",
"app_key": "AN-APP-KEY",
"app_secret": "XyZ"
}
在另一方面,所述的命令形式:
curl -v --user 'test:test' -H 'APP_KEY: AN-APP-KEY' -H 'APP_SECRET: XyZ' http://localhost:3000/auth
不成功。其实,我可以在服务器端看到的标题是这样的:
{
"authorization": "Basic dGVzdF9hdXRoOnRlc3Q=",
"user-agent": "curl/7.37.1",
"host": "localhost:3000",
"accept": "*/*",
"app_key": "AN-APP-KEY",
"app_secret": "XyZ"
}
所以,问题是:你知道为什么会这样,以及它如何能在服务器端解决?第二个curl命令应该不同,为什么?
期待您的帮助。
谢谢。如果您知道:我们为什么要转换为base64,我可以再问一个问题吗? – MightyMouse 2015-02-24 22:34:35
只是为了允许密码中的字符,否则将不允许在标题中。 – JHH 2015-02-25 02:25:33