使用curl对node.js进行基本身份validation

我正在开发一个应用程序,并作为身份validation方法我使用基本身份validation 到目前为止一切工作正常,但显然我仍然做错了一个新的合作伙伴表示。

特别是,命令的forms如下:

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" } 

另一方面,一个命令的forms是:

 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命令应该是不同的,为什么?

期待您的帮助。

你的第一个例子,你声称的作品,实际上不是一个http基本authentication的实现。 您正在传递一个身份validation:标题,但它不符合标准。 身份validation标题应包含单词Basic,后跟Base64编码格式的凭证。 这是你在例子2中看到的(如果解码base64,你会得到“test_auth:test”)。

所以为了支持基本authentication,第二个是你需要处理的。 要在您的服务器中处理这个问题,请使用现有模块之一(如basic-auth)来让您为您解密凭据。