gpt4 book ai didi

python - 身份验证 token 问题 EVE

转载 作者:太空宇宙 更新时间:2023-11-03 17:50:10 24 4
gpt4 key购买 nike

您好,我正在使用 eve token 身份验证 ( http://python-eve.org/tutorials/account_management.html#accounts-with-token-authentication ),但遇到了 401 消息。

<小时/>
class RolesAuth(TokenAuth):
def check_auth(self, token, allowed_roles, resource, method):
users = app.data.driver.db['users']
lookup = {'token': token}
if allowed_roles:
lookup['roles'] = {'$in': allowed_roles}
user = users.find_one(lookup)
return user

if __name__ == '__main__':
app = Eve(auth=RolesAuth)
app.run()
<小时/>

我使用用户名 test 和密码 1234 > 这会导致 base64 编码; dGVzdDoxMjM0

当我使用 cURL 时

<小时/>
curl -X "GET" "http://api.domain.com:5000/people/obama" -H "Authorization: Basic dGVzdDoxMjM0" 

这导致了 401

{"_status": "ERR", "_error": {"message": "Please provide proper credentials", "code": 401}}
<小时/>

我检查了 mongodb, token 就在那里

{
"_id" : ObjectId("551004d6714e7a5fec0729e3"),
"username" : "test",
"_updated" : ISODate("2015-03-23T12:19:34.000Z"),
"roles" : [
"admin",
"superuser"
],
"token" : "dGVzdDoxMjM0",
"_created" : ISODate("2015-03-23T12:19:34.000Z"),
"password" : "1234",
"_etag" : "96b41717630a49bca41b89f971cc3b8bd8d518a3"
}
<小时/>

cURL命令有问题吗?

最佳答案

您必须在发送 token 之前对 token 进行 Base64 编码,而在 mongodb 中则不进行编码。

当 Eve 收到 token 时,对其进行解码,然后将其与数据库进行比较。

如果您发送:

curl -X "GET" "http://api.domain.com:5000/people/obama" -H "Authorization: Basic dGVzdDoxMjM0" 

在数据库中必须存储:

"token" : "1234",

此外,您必须编码 token + :例如,如果数据库中的 token 值为“1234”,您必须编码并发送“1234:”

关于python - 身份验证 token 问题 EVE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29213069/

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