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