微信小程序开发《三》:微信小程序请求不能使用session的缘由及解决办法

    本人在前面的微信小程序开发《二》中提到要想在服务端保持状态须要在客户端第一次请求服务器的时候给客户端返回一个sessionid,由客户端在本地保存,下次请求的时候在header里面带上这个sessionid,写到cookie字段里。可是最近发现请求时哪怕每次在header里带上sessionid仍是不能拿到同一个session,百度后终于发现坑了(也不知道微信为啥要这么作),原来微信对wx.request这个API作了修改,小程序发起的请求并非直接请求咱们的后台服务器,而是先经过微信的服务器再发送到咱们的后台服务器,既然请求都是要经过微信的服务器发送到咱们的服务器,那么咱们的服务器也就无从识别请求的发起者了。所以,session在微信小程序的后台开发中是没法使用的。html

    既然session没法使用,对于本人这种web的后端程序猿该如何是好,只能用别的方式来代替了哦。我用了redis来代替session的功能,当客户端发送请求到后台服务器时,生成一个随机字符串做为key,本来要放入session的内容,通常是用户信息做为value存入redis中,而后将key返回给客户端,客户端将key存在本地的storage,在下次请求的时候以参数据形式将key带上,这样当后端服务器接收到key时即可以从redis中查找该key对应的value,从而实现了替代session的效果,redis还能够设置key失效的时间。web

相关文章
相关标签/搜索