gpt4 book ai didi

node.js - 使用curl在node.js上进行基本身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 23:38:13 35 4
gpt4 key购买 nike

我正在开发一个应用程序,作为身份验证方法,我使用基本身份验证。到目前为止,一切都工作正常,但显然我仍然做错了一些事情,正如一位新合作伙伴所指出的那样。

特别是以下形式的命令:

curl -v -H 'Authorization: Basic test:test' -H 'APP_KEY: AN-APP-KEY' -H 'APP_SECRET: XyZ' http://localhost:3000/auth

成功,我在服务器上收到的 header 如下:

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

期待您的帮助。

最佳答案

您的第一个示例(您声称有效的示例)实际上并不是 http basic auth 的实现。您正在传递 Authentication: header ,但它不符合标准。身份验证 header 应包含“Basic”一词,后跟 Base64 编码格式的凭据。这就是您在示例 2 中看到的内容(如果解码 Base64,您将得到“test_auth:test”)。

因此,为了支持基本身份验证,您需要处理第二个身份验证。要在服务器中处理此问题,请使用现有模块之一,例如 basic-auth让它为您解码您的凭据。

关于node.js - 使用curl在node.js上进行基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28695399/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com