python-eve api 的认证请求格式是什么
What is the format of the request for authentication to python-eve api
基本上,我有两个相关的问题。
在我的例子中,我有一个全局 Mongo 身份验证 admin,密码 pass。我按照 中的描述实现了我的 BCryptAuth
,因此我可以像这样创建没有任何身份验证的用户:
curl -d 'username="barack"' -d 'password="obama"' http://0.0.0.0:5000/users/?pretty
然后,我可以像这样使用 Mongo 身份验证访问我的 api:
curl -u admin:pass http://0.0.0.0:5000/users/?pretty
但是我无法使用我的新用户的任何凭据来获取任何数据。所以,请求
curl -u barack:obama http://0.0.0.0:5000/users/?pretty
不起作用。我总是得到 401:
{
"_status": "ERR",
"_error": {
"code": 401,
"message": "Please provide proper credentials"
}
}
在this example中,实现基本认证后,请求如下:
curl -H "Authorization: Basic YWRtaW46c2VjcmV0" -i http://example.com
我不清楚 Basic
关键字后面的标记是什么。我也尝试在我的案例中使用这种格式,但没有任何效果。
所以,第一个问题是,请求的格式必须是 barack 用户,密码为 obama 基本授权?
此外,我正在尝试实施 TokenAuth
。那么第二个问题,带token的请求格式是什么?
我找不到任何关于此的明确信息。
更新
感谢@gcw,我知道了如何使用 Authorization header.
发出请求
一些评论:
- linux 上的 Base64 解码是用
echo '<base64encodedstring>' | base64 -d
完成的。 -D
是 macos 选项。
- Base64 编码完成:
echo -n '<string>' | base64
。 -n
很重要 - 它删除 new line
字符,默认情况下包含在 <string>
. 中
但是我仍然无法使用我新创建的用户登录api。
授权 header 必须具有 base64 格式的 admin:pass
信息。如果通过使用 echo "YWRtaW46c2VjcmV0" | base64 -D
解码来检查 YWRtaW46c2VjcmV0 的内容,您可以看到它是 admin:secret
。尝试使用 base64 格式的凭据,看看是否可行。此外,您可以使用 Postman Basic Auth 选项卡生成授权 header。
关于使用 TokenAuth,您可以使用 Bearer
而不是 Basic
以 base64 格式传递您的令牌。此回答 here 解释了有关不同 HTTP 身份验证方法的一些细节。
基本上,我有两个相关的问题。
在我的例子中,我有一个全局 Mongo 身份验证 admin,密码 pass。我按照 BCryptAuth
,因此我可以像这样创建没有任何身份验证的用户:
curl -d 'username="barack"' -d 'password="obama"' http://0.0.0.0:5000/users/?pretty
然后,我可以像这样使用 Mongo 身份验证访问我的 api:
curl -u admin:pass http://0.0.0.0:5000/users/?pretty
但是我无法使用我的新用户的任何凭据来获取任何数据。所以,请求
curl -u barack:obama http://0.0.0.0:5000/users/?pretty
不起作用。我总是得到 401:
{
"_status": "ERR",
"_error": {
"code": 401,
"message": "Please provide proper credentials"
}
}
在this example中,实现基本认证后,请求如下:
curl -H "Authorization: Basic YWRtaW46c2VjcmV0" -i http://example.com
我不清楚 Basic
关键字后面的标记是什么。我也尝试在我的案例中使用这种格式,但没有任何效果。
所以,第一个问题是,请求的格式必须是 barack 用户,密码为 obama 基本授权?
此外,我正在尝试实施 TokenAuth
。那么第二个问题,带token的请求格式是什么?
我找不到任何关于此的明确信息。
更新
感谢@gcw,我知道了如何使用 Authorization header.
发出请求一些评论:
- linux 上的 Base64 解码是用
echo '<base64encodedstring>' | base64 -d
完成的。-D
是 macos 选项。 - Base64 编码完成:
echo -n '<string>' | base64
。-n
很重要 - 它删除new line
字符,默认情况下包含在<string>
. 中
但是我仍然无法使用我新创建的用户登录api。
授权 header 必须具有 base64 格式的 admin:pass
信息。如果通过使用 echo "YWRtaW46c2VjcmV0" | base64 -D
解码来检查 YWRtaW46c2VjcmV0 的内容,您可以看到它是 admin:secret
。尝试使用 base64 格式的凭据,看看是否可行。此外,您可以使用 Postman Basic Auth 选项卡生成授权 header。
关于使用 TokenAuth,您可以使用 Bearer
而不是 Basic
以 base64 格式传递您的令牌。此回答 here 解释了有关不同 HTTP 身份验证方法的一些细节。