https://www.xin3721.com/eschool/pythonxin3721/
基于flask的网页聊天室(三)
前言
继续上一次的内容,今天完成了csrf防御的添加,用户头像的存储以及用户的登录状态
具体内容
首先是添加csrf的防御,为整个app添加防御:
from flask_wtf.csrf import CSRFProtect
CSRFProtect(app)
这个添加到init文件中,因为是创建app时的内容。
然后在html页面的表单中添加隐藏的csrf的input标签:
这样就可以对表单的提交添加csrf的防御了
为了之后可能在ajax中使用,在利用请求钩子在cookie中同样存储csrftoken:
from app import app
from flask_wtf.csrf import generate_csrf
@app.after_request
defafter_request(response):
csrf_token = generate_csrf()
response.set_cookie("csrf_token", csrf_token)
return response
同时也在app.py中将请求钩子引入内存:
from web_chatroom.request_hook import *
接下来进行用户头像的存储,这里使用了https://gravatar.com/avatar/ 网站中的头像,它通过这样的链接:
https://gravatar.com/a