在登录请求后读取 返回值的, header的cookie,并本地存储
- //登录请求回来之后,读取res的header的cookie
- //这里的sessionid随便写的,就是个唯一标识
- wx.setStorageSync("sessionid", res.header["Set-Cookie"])
2.请求带上cookie
- //创建header
- var header;
- header = {
- 'content-type': 'application/x-www-form-urlencoded',
- 'cookie':wx.getStorageSync("sessionid")//读取cookie
- };
- //进行请求,一般外层都有一个封装,然后放在公共类里边
- wx.request({
- url: realURL,
- method: method,
- header: header,//传在请求的header里
- data: datas,
- success(res) {
- //请求成功的处理
- }
- )}
3.接下来需要将sessinid在本地管理的方法
- var sessionkey;
- var sessiondate;
- //可以封装一个保存sessinid的方法,将sessionid存储在localstorage中,定为半小时之后清空此sessionid缓存。
- function saveSession(sessionId) {
- console.log(" now save sessionid: " + sessionId)
- wx.setStorageSync(“sessionkey” sessionId)//保存sessionid
- wx.setStorageSync(“sessiondate”, Date.parse(new Date()))//保存当前时间,
- }
- // 过期后清除session缓存
- function removeLocalSession() {
- wx.removeStorageSync(“sessionid的key”)
- wx.removeStorageSync(sessiondate)
- console.log("remove session!")
- }
- //检查sessionid是否过期的方法
- function checkSessionTimeout() {
- var sessionid = wx.getStorageSync(sessionkey)
- if (sessionid == null || sessionid == undefined || sessionid == "") {
- console.log("session is empty")
- return false
- }
- var sessionTime = wx.getStorageSync(sessiondate)
- var aftertimestamp = Date.parse(new Date())
- if (aftertimestamp - sessionTime >= SESSION_TIMEOUT) {
- removeLocalSession()
- return false
- }
- return true
- }
- //如果sessionid过期,重新获取sessionid
- function checkSessionOk() {
- console.log("check session ok?...")
- var sessionOk = checkSessionTimeout()
- if (!sessionOk) {
- requestsessionid(function () {
- })
- }}
- //定义一个方法每隔一段时间检查sessionid是否过期
- function checkcrosstime() {
- setInterval(checkSessionTimeout, ----)//这个时间可以自定义。比如25 * 60 * 1000(代表25分钟)
- }