小程序模板網(wǎng)

微信小程序開發(fā)-保存服務(wù)端sessionid的方法

發(fā)布時間:2018-05-09 11:05 所屬欄目:小程序開發(fā)教程

普通的Web開發(fā),都是把sessionid保存在cookie中傳遞的。

不管是java還是php,服務(wù)端的會在response的header中加上Set-Cookie

 

				
  1. Response Headers
  2. Content-Type:application/json;charset=UTF-8
  3. Date:Mon, 02 Apr 2018 16:02:42 GMT
  4. Set-Cookie:JSESSIONID=781C7F500DFA24D663BA243A4D9044BC;path=/yht;HttpOnly

瀏覽器的請求也會在header中加上

 

				
  1. Request Headers
  2. Accept:*/*
  3. Accept-Encoding:gzip, deflate, br
  4. Accept-Language:zh-CN,zh;q=0.8
  5. Cache-Control:no-cache
  6. Connection:keep-alive
  7. Content-Length:564
  8. content-type:application/json
  9. Cookie:JSESSIONID=781C7F500DFA24D663BA243A4D9044BC;path=/yht;HttpOnly

通過這個sessionid就能使瀏覽器端和服務(wù)端保持會話,使瀏覽器端保持登錄狀態(tài)

但是,微信小程序不能保存Cookie,導(dǎo)致每次wx.request到服務(wù)端都會創(chuàng)建一個新的會話,小程序端就不能保持登錄狀態(tài)了

簡單的處理方法如下:

1、把服務(wù)端response的Set-Cookie中的值保存到Storage中

 

				
  1. wx.request({
  2. url: path,
  3. method:method,
  4. header: header,
  5. data:data,
  6. success:function(res){
  7. if(res && res.header && res.header['Set-Cookie']){
  8. wx.setStorageSync('cookieKey', res.header['Set-Cookie']);//保存Cookie到Storage
  9. }
  10. },
  11. fail:fail
  12. })
  13. wx.request再從Storage中取出Cookie,封裝到header中
  14. let cookie = wx.getStorageSync('cookieKey');
  15. let path=conf.baseurl+url;
  16. let header = { };
  17. if(cookie){
  18. header.Cookie=cookie;
  19. }
  20.  
  21. wx.request({
  22. url: path,
  23. method:method,
  24. header: header,
  25. data:data,
  26. success:success,
  27. fail:fail
  28. })


易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://22321a.com/wxmini/doc/course/24355.html 復(fù)制鏈接 如需定制請聯(lián)系易優(yōu)客服咨詢:800182392 點(diǎn)擊咨詢
QQ在線咨詢