本文主要參考官方文檔官方文檔。
在利用eve操作MongoDB數(shù)據(jù)庫的時候谓形,難免用到身份驗證的功能盾饮,官方文檔給了配置樣例(用戶名admin
揭鳞,密碼secret
)后,直接給出了下面這樣的獲取數(shù)據(jù)的命令,而沒有說明“YWRtaW46c2VjcmV0”是怎么來的髓削,可能是認(rèn)為使用這個框架的人本來就該知道吧才写。
$ curl -H "Authorization: Basic YWRtaW46c2VjcmV0" -i http://example.com
通過查資料葡兑,我發(fā)現(xiàn)這個字符串是對admin:secret
進(jìn)行base64編碼得到的,我在python3字符串base64編解碼這篇文章中找到了用python對字符串進(jìn)行base64編碼的方法赞草。
最終讹堤,生成headers的代碼是這樣的:
user_name = "admin"
password = "secret"
s = "%s:%s" % (user_name, password)
authorization = str(base64.b64encode(s.encode('utf-8')), "utf-8")
headers = {
'Content-Type': 'application/json',
'Authorization': 'Basic ' + authorization
}
通過驗證,是可以用的