最近遇到一個(gè)棘手的問(wèn)題,微信公眾平臺(tái)的前端站點(diǎn)session老是丟失,我們是走的微信網(wǎng)頁(yè)授權(quán),授權(quán)后獲取用戶openid,丟失后沒(méi)有openid后續(xù)的操作全白搭了,因?yàn)闆](méi)了openid只能判斷為客戶不是在微信端訪問(wèn)進(jìn)行提示,

然后接連收到客服中心回饋問(wèn)題,不過(guò)全是安卓客戶端的ios的完全沒(méi)有(真邪門了),哎,秉著有問(wèn)題就要解決的態(tài)度,開(kāi)搞吧!

      我們前端有六臺(tái)Windows server 2012,部署的IIS站點(diǎn),用A10做的硬負(fù)載,之前openid都是作為url參數(shù)各個(gè)page進(jìn)行傳遞的,領(lǐng)導(dǎo)有意見(jiàn),因?yàn)樽鳛閡rl參數(shù)的話微信的分享功能可以把整段鏈接分享出去,后來(lái)我們把分享按鈕屏蔽掉了,不過(guò)效果還是不太好,手微信頁(yè)面加載慢的時(shí)候屏蔽的js還沒(méi)生效還是能復(fù)制到鏈接什么的,后來(lái)改成了session,所以考慮到應(yīng)該在請(qǐng)求分發(fā)下六臺(tái)服務(wù)器session沒(méi)同步導(dǎo)致的!

平面設(shè)計(jì)培訓(xùn),網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn),美工培訓(xùn),游戲開(kāi)發(fā),動(dòng)畫培訓(xùn)

      之前也看過(guò)寫關(guān)于分布式下session的問(wèn)題,然后自己也想了想,試著用redis+Cookie的方案來(lái)試下,這個(gè)方案也有兩種用法,目前只使用了第一種,第二種是為了防止第一種失敗考慮的,下面大概先說(shuō)下方案。

     用戶授權(quán)后,任意站點(diǎn)拿到openid后生成guid作為sessionId 寫到cookie, 然后將sessionId+自定義key作為rediskey,然后將openid作為redisvalue寫入redis,redis跟cookie的寫入都是有時(shí)效性的,如果中途請(qǐng)求分發(fā)到別的服務(wù)器就直接拿cookie然后組裝rediskey去查詢,如果沒(méi)有那就認(rèn)為客戶不是正常手段進(jìn)入頁(yè)面的,如果有就拿openid進(jìn)行下面業(yè)務(wù)操作,見(jiàn)圖:

平面設(shè)計(jì)培訓(xùn),網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn),美工培訓(xùn),游戲開(kāi)發(fā),動(dòng)畫培訓(xùn)                平面設(shè)計(jì)培訓(xùn),網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn),美工培訓(xùn),游戲開(kāi)發(fā),動(dòng)畫培訓(xùn)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式