1. 程式人生 > >解決微信自動清除緩存,每天都需要重新登錄

解決微信自動清除緩存,每天都需要重新登錄

是否 Nid settime ESS session 通過 tco ons msg

問題場景:新版微信會自動清空cookie,導致每天都要重新登錄

解決思路:後端是通過session來獲取用戶是否登錄,而session信息會存在客戶端的cookie裏面,然後每次請求接口的時候。又會自動帶上cookie上面的信息,傳給後端。所以我們可以在登錄的時候讓後端把登錄信息傳過來,然後存在localstorage裏面,在首頁需要登錄的頁面裏面獲取localstorage裏面的值,設置在cookie上,這樣在每次進行ajax請求的時候,瀏覽器會自帶將存在cookie上面的用戶信息傳過去,服務器會根據cookie上面的信息去數據庫讀取sessionid做判斷!!!!

login頁面

 flag = false
; $.ajax({ url:ajaxLogin, type:post, data:{"nc_token":nc_token,"csessionid":csessionid,"scene":scene,"sig":sig,tel:tel,verifyCode:verifyCode,redirect_url:redirect_url,remeber:1, from : from}, success: function(res){
//console.log(res); if(res.status == 1000){ var tipMsg = res.data ? res.data : 登錄成功~; //$.alert(‘tipMsg‘); window.localStorage.setItem(username,tel); $(#getVerifyCode).removeClass(btn-blue
).addClass(btn-disabled); flag = true; setTimeout(function(){ window.location.href = res.data },500); //pobp838totku433ts210d7b2s0 var PHPSESSID_cookie = getCookie("PHPSESSID"); var m_enstr = getCookie(m_enstr); if(PHPSESSID_cookie){ window.localStorage.setItem("PHPSESSID",PHPSESSID_cookie); window.localStorage.setItem("act_m_enstr",m_enstr); } window.localStorage.setItem("act_login",1); var expires = new Date().getTime() + 14*24*3600*1000; window.localStorage.setItem("expires",expires); }else{ $.alert(res.data); flag = true; } }, error: function(){ $.alert(出錯啦!); flag = true; } })

index

    //判斷是否登錄
    var is_login = "{$is_login}";
    if (!is_login) {
        var act_login = window.localStorage.getItem("act_login");
        var expires = parseInt(window.localStorage.getItem("expires"));
        var PHPSESSID = window.localStorage.getItem("PHPSESSID");
        var act_m_enstr = window.localStorage.getItem(act_m_enstr);
        var nowtime = new Date().getTime();
        var PHPSESSID_oldcookie = getCookie("PHPSESSID");
        if (PHPSESSID_oldcookie != PHPSESSID) {
            if (act_login == "1" && nowtime < expires) {
                setCookie("PHPSESSID", PHPSESSID, 14);
                setCookie("m_enstr", act_m_enstr, 14);
                window.location.reload();
            }
        }
    }

解決微信自動清除緩存,每天都需要重新登錄