php微信小程序会话保持,微信小程序保持session会话的方法
一般我們web網站都會有cookie來保存session ID,將用戶和服務器保持在一次會話中,但是很遺憾,微信小程序不支持cookie,他的每一次請求就是一次會話,這樣就會產生一個問題,每次請求都需要確定當前的用戶是誰,但是我們又不能在每次請求的數據中攜帶用戶的信息,這樣是不安全的。今天就介紹兩種方式來實現保持會話。
第一種:客戶端保存session ID
1、通過wx.login接口獲取 code,將code傳遞到后臺(一般后臺都有shiro或者Spring security這種過濾器,該方法作為第一個啟動方法需要后臺放過),后臺通過code訪問微信接口,返回當前登陸的微信信息。
2、后臺通過微信的openID去數據庫的微信信息表中查詢該微信號是否與后臺用戶綁定過,如果綁定過,將該用戶信息放入session中,并返回已綁定標記,為綁定過,返回為綁定標記。并且將會話ID返回。
3、小程序拿到sessionID和是否綁定標記,將session ID存入緩存中或者在app.js中定一個全局變量用來存儲。如果未綁定,跳轉到綁定頁面,如果綁定,去往首頁。
4、因為后臺的session都有過期時間,默認是半個小時,所以說為了確保小程序端的session ID不會過期,我們需要在他過期之前刷新sessionID。
我們每過二十分鐘刷新一次,也就是重新請求一次。
將該函數放到app.js的生命周期函數中,這樣一旦打開小程序就會執行
5、每次請求需要將sessionID放入cookie中,并將它設置頭request header中
第二種:小程序保持唯一標識uuid(如果后臺過濾器需要登陸驗證的話,小程序端的請求接口都需要放行),這個就不貼代碼了,基本和上面邏輯差不多,只不過這次存的是uuid。
1、小程序請求微信,拿到code,請求后臺并傳遞code
2、后臺根據code請求微信,拿到openID
3、后臺根據openID去微信信息表查詢該openID是否綁定用戶,綁定了,返回一個唯一表示uuid以及綁定標識,沒有綁定,創建一個uuid以及未綁定標識返回給小程序
4、小程序判斷未綁定,跳轉到綁定頁面,根據輸入信息+uuid返回給后臺綁定用戶,后臺返回是否綁定成功
總結
以上是生活随笔為你收集整理的php微信小程序会话保持,微信小程序保持session会话的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP服务器脚本实例,Shell脚本实现
- 下一篇: haxe php,Haxe学习笔记(一)