由於沒有獲取正規做CAS的流程,這里根據網上的資料,寫了一個自己覺得還可以的方案流程,留着備用
名稱介紹:
token:用於驗證請求是否合法
refreshToken:當token失效后,客戶端發送token和refreshToken刷新token
Token保存的值:
除了保存用戶的基本信息(如userId,name)外,還需要保存一個隨機碼(如uuid),以便區分不同客戶端的登陸狀態
大概流程:
客戶端登陸后,服務端返回token和refreshToken,並在緩存中保存 key(token),value(refreshToken+payLoad保存)
由於token的有效期比較短,當token過期后,客戶端通過服務端返回的refreshToken和token向服務端請求刷新token。服務端收到請求后,生成新的token和refreshToken,並在緩存中保存,同時將舊的token緩存清除,使之失效
ajax刷新token公用方法:
可以通過ajaxSetup設置error統一處理。在error里,this為ajax的配置參數,再重新調用 $.ajax(this)便可以再次發起請求
//刷新token碼是否過期 var refreshTokenExp = true; $.ajaxSetup({ error:function (xhr, status, e) { if(xhr.status=="401"){ refreshToken();//刷新token if(!refreshTokenExp){ alert("token刷新成功") $.ajax(this);//重新調用 }else{ alert("refreshToken過期"); } } } })
流程圖: