Django

Django 获取request.session.session_key为None

简介:在web端登陆基于django的后台,request.session.session_key正常返回,而使用iOS客户端登陆则为None

问题描述

在web端登陆基于django的后台,request.session.session_key正常返回,而使用iOS客户端登陆则为None。

解决方法

在获取session_key时,如果为None则创建。

   if not request.session.session_key:
       request.session.create()
   sessionid = request.session.session_key

使用create()来代替save()原因:

SessionStore.create()用于创建新会话(即未从会话存储加载的会话session_key=None)

save()用于保存现有会话(即从会话存储加载的会话)。

调用save()新会话也可能有效,但产生session_key与现有会话冲突的可能性很小。create()调用save()和循环,直到session_key`生成未使用的。

参考资料:https://stackoverflow.com/questions/39181655/sometimes-request-session-session-key-is-none

推荐阅读

目录