微信小程序后端如何解决无法保持session的问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计749个文字,预计阅读时间需要3分钟。
之前未接触过微信小程序项目,在使用jQuery库的ajax中非常正常,服务器也能保持会话状态。但在使用wx.request时,发现会话状态一直不能保持,一开始以为是服务器php.ini配置错误,在代码中加入了。
之前未接触过微信小程序项目,在使用jQuery库的ajax中很正常,服务器也能保持会话状态。在使用wx.request中发现会话一直不能保持,一开始以为是服务器php.ini配置错误,
- 在代码中加入session_start()或者开启session.auto_start()
- 确认session.save_path配置正确且有读写权限
的情况下仍无效果。以上方法确实可以解决大多数情况下的页面刷新session无法保持问题。
但是在设置之后都没有效果。
最后发现,原来是jQuery的ajax(应该是浏览器)会自动维护cookie,而wx.request不会。
这涉及到session与cookie的关系及保存机制的问题。
首先,cookie是保存在客户端的信息,而session是保存在服务器的信息。
那服务器如何识别单独用户的session,在一次连接下,如何判别该用户是属于哪一个session。
机制是,服务器生成一个sessionid辨别用户,并在相应中的cookie带上该sessionid值。在用户下一次请求时,请求头中cookie理应也带上该sessionid,以便服务器辨别用户会话。其中辨别机制和session存储机制涉及到序列和反序列化,在session.save_path中,为每一个session单独创建一个文件,文件名为sessionid,内容则是此次会话保存的session。
本文共计749个文字,预计阅读时间需要3分钟。
之前未接触过微信小程序项目,在使用jQuery库的ajax中非常正常,服务器也能保持会话状态。但在使用wx.request时,发现会话状态一直不能保持,一开始以为是服务器php.ini配置错误,在代码中加入了。
之前未接触过微信小程序项目,在使用jQuery库的ajax中很正常,服务器也能保持会话状态。在使用wx.request中发现会话一直不能保持,一开始以为是服务器php.ini配置错误,
- 在代码中加入session_start()或者开启session.auto_start()
- 确认session.save_path配置正确且有读写权限
的情况下仍无效果。以上方法确实可以解决大多数情况下的页面刷新session无法保持问题。
但是在设置之后都没有效果。
最后发现,原来是jQuery的ajax(应该是浏览器)会自动维护cookie,而wx.request不会。
这涉及到session与cookie的关系及保存机制的问题。
首先,cookie是保存在客户端的信息,而session是保存在服务器的信息。
那服务器如何识别单独用户的session,在一次连接下,如何判别该用户是属于哪一个session。
机制是,服务器生成一个sessionid辨别用户,并在相应中的cookie带上该sessionid值。在用户下一次请求时,请求头中cookie理应也带上该sessionid,以便服务器辨别用户会话。其中辨别机制和session存储机制涉及到序列和反序列化,在session.save_path中,为每一个session单独创建一个文件,文件名为sessionid,内容则是此次会话保存的session。

