Python Flask 用户身份验证(flask用户认证)

花了差不多3个小时,给它一行一行敲出来了,整个实验还是比较顺利的,最后注册页面,登陆页面,1024页面成功跑通的时候,感觉再辛苦,也是值得的~

  • Flask-Login:管理已登录用户的用户会话
  • Werkzeug:计算密码散列值并进行核对
  • itsdangerous:生成并核对加密安全令牌
  • Flask-Mail:发送与身份验证相关的电子邮件
  • Flask-Bootstrap:HTML模版
  • Flask-WTF:Web表单

ailx10

10w+ 次咨询

网络安全优秀回答者

网络安全硕士

去咨询

一、使用Werkzeug计算密码散列值

如果黑客入侵了服务器,对数据库进行了脱裤,发现用户的密码都是密文,直接气炸了。不过黑客也不怕,毕竟有的数据库没有撒一把盐,所以通过用户名去关联不同网站的密码哈希,就能发现一个人在各个不同的网站,使用同一个密码,这就给了社工有机可乘~

所以涉及到密码哈希,肯定是要随机加盐的,这里推荐的Werkzeug的security模块,自然是靠谱的~

  • generate_password_hash :产生密码哈希
  • check_password_hash :检验密码是否能匹配密码哈希

二、创建身份验证蓝本

这里需要把一个大应用的不同子系统放在不同的蓝本中,我们这里的身份验证子系统,也会使用它自己的路由views视图,让代码结构更加清晰~

三、使用Flask-Login验证用户身份

我们的用户登录后,就应该被允许浏览网站的大多数网页了,所以我们需要记住用户的登陆状态,这里就是会话技术,只需要安装一下flask-login就有了~

Flask-Login中的LoginManager 对象的login_view属性,用于设置登陆页面的端点,用户第一次访问网站的时候,都会被重定向到登陆页面~

保护路由,可以定义一些VIP资源,只有登陆的用户才能访问。如果没有登陆,硬要访问这个页面,就会自动被重定向到登陆页面~

添加一个登陆表单

这样一顿操作,登陆页面这就出来了。要想富先修路一个道理,我们还需要提供一个注册页面~

四、注册新用户

菜鸟程序员申请出战,免费注册页面~

如果输入都是合法字符串,那么会提示注册成功~

现在就可以愉快的登陆了~

登陆之后,就可以随心所欲的访问1024网页了~


如何只花1元搭建个人博客网站

作者 ailx10

去查看

整个过程还是比较快乐的,感觉一路顺水,就实现了。不过这里还没有发送一封邮件给这个注册人,只有确认邮箱之后,我们才能给这个用户赋予真正的权限,明天再搞~

本篇完,谢谢大家~

发布于 2021-01-27 22:52 (知乎)