有些网站在打开时就会弹出登录提示框,直接提示你输入用户名和密码,验证成功才能查看页面。这样的验证使用的是HTTPAuth验证方式,如果想在自己的网站设置这样的验证就需要使用Python模块flask_HTTPAuth,下面我们就来详细看一下这个模块的使用。
Flask 是什么?我想打开这篇文章的你应该不陌生,但是我还引用维基百科上的内容做个简短的介绍。
这是一篇个人博客搭建的记录博客,也是一篇关于Flask和Vue的简单"工具书",最后的代码会包含Web开发中常用的功能。(不全,只是使用频率相对高的)
与网站登录不同的是,网站登录将登录信息写入cookie存储在浏览器,而API只负责生成token发送给客户端,而客户端怎么存储有自己决定。
REST又被称为表征性状态传输,它是指客户端与服务端之间传输信息的一种方式。在REST中并没有严格的标准和规范,它只是规定了一套对通信的约束,当然它也存在一些指导的约束,也就是说客户端与服务端关注的是分离,只要API改变。常见的RESTful系统形式由JSON组成,每个资源位于自己的URL路径上,并使用不同的HTTP请求方法进行操作。在这里还是以具体的案例来说明这部分的应用,在无涯课堂里面添加课程的信息,获取所有课程的信息,以及获取某一个课程的信息,和对课程信息进行修改,以及删除课程的信息。需要安装的第三方的库为:flask-restful,flask-httpauth,flask,安装成功后,就实现具体的案例代码。
“ 昨天搭建了一个HTTPS的服务器,放在那里不用简直是浪费了,今天来部署一个RESTFul API服务”
在接口测试之RESTful中对RESTful做了详细的介绍,在前面的基础上继续完善案例的应用。在接口测试中,当客户端请求服务端,服务端响应返回给客户端,返回的这些这些信息除了响应头,还有就是业务状态码,msg以及数据,比如登录一个系统成功后,它返回的内容可能是:{"status":0,"msg":"ok","datas":{"userid":1001,"name":"wuya"}},这里还是看一个案例的应用,比如登录抽屉网失败,看服务端返回给客户端的信息,如下图所示:
用户认证的原理 在了解使用Flask来实现用户认证之前,我们首先要明白用户认证的原理。假设现在我们要自己去实现用户认证,需要做哪些事情呢?
依赖完成以后在 server 目录下再新建一个 server 目录作为项目的主目录,第一级 server 目录作为共用配置文件存储目录。
由于我们会有很多请求,都需要验证 token 的有效性,那么把这部分逻辑抽象出来就是最好的选择了。我这里大概想到了以下两种验证的方法
为了测试接口是否可以正常调用,我们新建一个py文件,模拟发送参数到这个地址,看是否有返回结果。
basic auth 是最简单的一种,将用户名和密码通过 form 表单提交的方式在 Http 的 Authorization 字段设置好并发送给后端验证
Auth::routes() 是 Laravel 的用户认证路由,在 vendor/laravel/framework/src/Illuminate/Routing/Router.php 搜索 LoginController 可看到定义的具体路由:
|-flasky |-app/ |-api_1_0 |-init.py |-users.py |-posts.py |-comments.py |-authentication.py |-errors.py |-decorators.py
本文项目地址: https://github.com/frostming/flask-vue-todo
AuthCov使用Chrome headless browser(无头浏览器)爬取你的Web应用程序,同时以预定义用户身份进行登录。在爬取阶段它会拦截并记录API请求及加载的页面,并在下一阶段,以不同的用户帐户“intruder”登录,尝试访问发现的各个API请求或页面。它为每个定义的intruder用户重复此步骤。最后,它会生成一份详细的报告,列出发现的资源以及intruder用户是否可以访问这些资源等。
If you saw the darkness in front of you, don't be afraid, that's because sunshine is at your back.
努力与运动兼备~~~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!
话说什么是基本认证? 在HTTP协议进行通信的过程中,HTTP协议定义了基本认证过程以允许HTTP服务器对WEB浏览器进行用户身份证的方法,当一个客户端向HTTP服务 器进行数据请求时,如果客户端未被认证,则HTTP服务器将通过基本认证过程对客户端的用户名及密码进行验证,以决定用户是否合法。
Django中其实提供了用户模型类User保存用户的数据,让我们先来看一下自带的模型类都包含了些什么:
领取专属 10元无门槛券
手把手带您无忧上云