本节代码(完整版)下载地址:https://download.youkuaiyun.com/download/geek_xiong/11622490
scrf_token缺失的解决办法
每次再登陆状态下点击退出,再登陆(不手动刷新页面)时会报缺失csrf_token的错误,如下图
根据图中的信息可以知道,退出再登陆,csrf_token是从session中获取的,但是当初我们并没有将scrf_token写入到session中,代码如下
# web_html.py
# 创建一个csrf_token的值
csrf_token = csrf.generate_csrf()
# flask 提供的返回静态文件的方法
resp = make_response(current_app.send_static_file(html_file_name))
# 设置cookie值
resp.set_cookie('csrf_token', csrf_token)
只是将scrf_token添加到了cookie中
那么,既然要从session中获取,我们设置session就可以了,还有必要设置cookie吗?
答案是肯定的,前端向后端发起请求时,是需要携带scrf_token提供验证的,而前端发起请求是会发送请求头、请求体的