zoukankan      html  css  js  c++  java
  • 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过期");
                }
                    }
                }
            })

    流程图:

     

  • 相关阅读:
    两种序列化方式Serializable和Parcelable
    函数初识
    编码理解
    分享------关于复合赋值运算符
    pycharm 设置鼠标控制字体大小
    Mac下python3的安装和PyCharm中python3的使用
    python编码问题总结
    python----编码详解
    python基础二
    python 基础一
  • 原文地址:https://www.cnblogs.com/jaxlove-it/p/10063088.html
Copyright © 2011-2022 走看看