鍍金池/ 問(wèn)答/HTML5  網(wǎng)絡(luò)安全  HTML/ 在js的項(xiàng)目中 如何保證登錄session的統(tǒng)一性

在js的項(xiàng)目中 如何保證登錄session的統(tǒng)一性

我們是小程序項(xiàng)目,要拿到微信登錄的code請(qǐng)求后臺(tái)api獲取sessionkey。但如果是并發(fā)請(qǐng)求的時(shí)候,假如這個(gè)時(shí)候碰巧過(guò)期了,幾個(gè)請(qǐng)求同時(shí)去獲取sessionkey的話,后面的請(qǐng)求會(huì)把之前請(qǐng)求拿到的sessionkey弄過(guò)期,那么如何保證session的統(tǒng)一性呢?

回答
編輯回答
吢涼

每個(gè)請(qǐng)求回來(lái)的數(shù)據(jù)結(jié)構(gòu)統(tǒng)一,里面都包含sessionkey(以下簡(jiǎn)稱key):
1.當(dāng)沒(méi)過(guò)期的key請(qǐng)求時(shí),返回這個(gè)key;
2.當(dāng)key已過(guò)期時(shí),返回新key;
3.當(dāng)新key請(qǐng)求時(shí),返回新key;
4.拿不存在的key請(qǐng)求時(shí),重新走登錄流程(或校驗(yàn)賬號(hào)狀態(tài)的修正流程);
5.前端自動(dòng)把每次獲取的key 存入本地緩存;
6.請(qǐng)求時(shí)key從本地緩存獲取。

所以,服務(wù)端推薦存放2個(gè)key,上一個(gè)舊key和當(dāng)前新key。

2017年10月22日 08:37