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.

发出请求

一些评论:

但是我仍然无法使用我新创建的用户登录api。

授权 header 必须具有 base64 格式的 admin:pass 信息。如果通过使用 echo "YWRtaW46c2VjcmV0" | base64 -D 解码来检查 YWRtaW46c2VjcmV0 的内容,您可以看到它是 admin:secret。尝试使用 base64 格式的凭据,看看是否可行。此外,您可以使用 Postman Basic Auth 选项卡生成授权 header。

关于使用 TokenAuth,您可以使用 Bearer 而不是 Basic 以 base64 格式传递您的令牌。此回答 here 解释了有关不同 HTTP 身份验证方法的一些细节。