CAS實現邏輯(JWT)


由於沒有獲取正規做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過期");
            }
                }
            }
        })

 

流程圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM