HTTP Basic Auth 小实验

in 应用教程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

在 Postman 里面看到了一堆的 Auth 方式:

auth.png

现在来看一下 Basic Auth。

思路

Basic Auth 是什么

附 Python 里的 base64:

>>> base64.encodestring('clip:passwd')
'Y2xpcDpwYXNzd2Q=\n'
>>> base64.decodestring('Y2xpcDpwYXNzd2Q=\n')
'clip:passwd'

Flask Basic Auth

参考官方的 snippet:HTTP Basic Auth | Flask (A Python Microframework)
可以运行的 Gist:basic auth demo - with flask

最关键的地方如下:

获得请求中的 Basic Auth 信息

auth = request.authorization
auth.username
auth.password

如果不通过验证返回需要 Basic Auth 登录的头

{'WWW-Authenticate': 'Basic realm="Login Required"'}

至于那个 realm 意思见这里:http - What is the "realm" in basic authentication - Stack Overflow,大概就是说这是块什么“区域”,浏览器中的显示如下:

login required

(这里先不去测试不同的路径的登录和返回的 realm 的关系)

浏览器测试

通过测试发现登录一次之后到浏览器退出都会自动携带上那个 Basic Auth 的 Header。

用 curl 测试

$ curl http://127.0.0.1:5000/secret-page
Could not verify your access level for that URL.
You have to login with proper credentials%

curl 的 Basic Auth 参数:

-u, --user USER[:PASSWORD]  Server user and password
$ curl -x http://localhost:8888 http://127.0.0.1:5000/secret-page -u admin:secret
secret_page%

Charles 抓包

小笔记:curl proxy
curl 的时候只要额外加一个 -x http://localhost:8888 就好了,抓到的效果如下:

basic auth

参考

关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看