使用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)来让您为您解密凭据。
- node.js oauth2服务器到服务器客户端(谷歌跟踪authentication)
- 当请求来自另一个域时,如何在sailsJS后端应用程序中坚持authentication状态?
- 由于连接不再使用parseCookie方法,我们如何使用express来获取会话数据?
- 如何在使用feathersjs响应NodeJs之前发送令牌jwt来validation?
- Node.js无状态/无Cookie会话API身份validation
- Express.js Passport身份validation会自动跳过策略
- Node.js TCP套接字会话
- 在Express应用程序中validationSocket.IO客户端
- 通过令牌validation,然后通过会话,如果令牌失败,使用护照?