首頁 > 微信小程式 > 小程式開發 > 微信小程式如何開發session管理?教學介紹

微信小程式如何開發session管理?教學介紹

青灯夜游
發布: 2021-04-25 08:58:22
轉載
5893 人瀏覽過

微信小程式如何開發session管理?教學介紹

在微信小程式開發中,由wx.request()發起的每次請求對於服務端來說都是不同的一次會話,微信小程式不會把session訊息帶回服務端,即對應服務端不同的session,由於專案中使用session保存使用者資訊所以導致後續請求相當於未登入的情況。

注意,這裡的session不是小程式維護的那個透過wx.login()方法維護的session,而是我們自己的服務端的session。

由於正常情況下,客戶端向服務端發起請求時,session資訊是存放在cookie中以請求頭的方式帶回給服務端的,而請求頭中具體的資訊就是session的id,如下圖所示

微信小程式如何開發session管理?教學介紹

標紅的就是我們需要在請求時攜帶回傳給服務端的請求頭所以我們需要的就是這個JESSIONID的值了。剛好,微信小程式也提供了對請求頭的支援。

解決方法:

1、在使用者登入時,服務端會將使用者的sessionId回傳。

2、小程式保存sessionId,在之後的每次請求中在請求頭中攜帶sessionId

服務端關鍵程式碼:

取得sessionId的方法,只要取得request物件就可以輕鬆取得到了

Sting sessionId = request.getSession().getId();
登入後複製

把sessionId回傳

...//登录时的业务代码
response.getWriter.write(sessionId);//把sessionId返回给前台
登入後複製

小程式端登入後,把sessionId存入全域變量,app.js中是個存放全域變數的好地方。

...//登录后的逻辑处理
getApp().globalData.header.Cookie = \'JSESSIONID=\' + _data.sessionId;
登入後複製

app.js中程式碼

globalData:{
header:{\'Cookie\': \'\'} //这里还可以加入其它需要的请求头,比如\'x-requested-with\': \'XMLHttpRequest\'表示ajax提交,微信的请求时不会带上这个的
},
登入後複製

小程式端請求時帶上sessionId

var header = getApp().globalData.header; //获取app.js中的请求头
wx.request({
url: localhost:8080/xx/xx,
header: header, //请求时带上这个请求头
success:function(res){
  }
}
登入後複製

建議封裝自己的請求訊息,處理一些通用的邏輯。

推薦:《小程式開發教學

以上是微信小程式如何開發session管理?教學介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板