問題:登陸成功之后,連接就斷開,服務(wù)器如何判斷當前用戶的的登錄狀態(tài)
一般,在開發(fā)中,利用token值來的判斷用戶的登錄狀態(tài)
token值:登錄令牌,是標識用戶信息的唯一標識符,是一個長字符串,不會有兩個相同的token值,
用戶登錄成功之后,在服務(wù)器端就會生成一個token值,然后這個token值就會返回給客戶端,同時在服務(wù)器也會保存這個token值
客戶端獲取到服務(wù)器屌token值之后,會保存在本地(磁盤/沙盒:"永久化"保存),
客戶端發(fā)送新的網(wǎng)絡(luò)請求:
{
1.請求不需要用戶信息,(瀏覽商品),服務(wù)器不需要判斷用戶是否登錄,
2.發(fā)送的請求需要用戶信息(購買商品/添加到購物車(JD需要,淘寶不需要)),服務(wù)器需要判斷用戶是否登錄成功過,
將token值作為判斷用戶信息的標準發(fā)送給服務(wù)器,服務(wù)器通過對比token值來確定用戶是否需要再次登錄,
token值改變
{
1.用戶信息已經(jīng)改變(密碼改變)
2.token值失效(token值是可以設(shè)置有效時間的)
{
1.實時要求比較高(安全):銀行支付類,失效時間比較短,15min
2.為了保留用戶/簡化登錄流程,失效時間比較長,1Year
}
}
服務(wù)器和本地保存的token值不相同,
{
1.如果token值不同:需要再次登錄,生成新的token值
2.token值失效了,再次登錄,
}
}
服務(wù)器如何判斷用戶的"唯一性"登錄?通過token值
{
設(shè)置token值失效,
每次登錄成功之后都會在服務(wù)器生成新的token值,原來的token值就失效了.
}
客戶端需要做的事情:就是將token值作為一個參數(shù)傳遞給服務(wù)器
{
1.將token值作為一個普通參數(shù)拼接在url后面或者封裝在請求體中,-------->手動添加token值參數(shù)
2.將token值保存在cookie中,自動發(fā)送給服務(wù)器,------>不需要程序員管理,
}
哪些網(wǎng)絡(luò)請求需要token值?
{
移動互聯(lián)網(wǎng)/大數(shù)據(jù)/HTML5
//手機用戶信息------>數(shù)據(jù)挖掘
//通過參數(shù)將用戶數(shù)據(jù)告訴服務(wù)器!
}