django session以及csrf token的创建过程
我们都知道session对应的是用户信息,django为登录的用户创建session的过程如下:
1、用户首次打开登录页面时,由于之前没有登录过,所以request头中不包含cookie字段
登录页面返回时会让用户设置csrf token
2、用户输入用户名和密码后,点击登录:
此时的POST请求的request头中会携带之前的csrftoken加密过后的csrfmiddlewaretoken,django会用session中保存的CSRF TOKEN(如果没有session就用cookie中的)进行对应的加密与csrfmiddlewaretoken进行比较,如果比较成功则验证通过,同时在回复的response header中设置新的csrftoken
3、用户登录成功后,只要不执行logout,sessionid一直存放在cookie中,用户在访问后续的接口时就不需要再此登录了