微信小程序開發《三》:微信小程序請求不能使用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

相關文章
相關標籤/搜索