SSM中使用Token和spring過濾器進行判斷用戶是否登陸

首先我們需要修改登錄方法對應存儲用戶登錄信息的代碼

將用戶登錄時生成的token存入Redis
並向前臺界面返回token值

//使用uuid生成token
String token = UUID.randomUUID().toString();
//將用戶信息存入redis
jedisPool.getResource().setex(token,60 * 60 * 24 * 15 ,JSON.toJSONString(member));
//將token返回給前端
return Result.success("登錄成功",token);

處理登錄返回結果

在axios中添加localStorage.setItem("token",response.data.data)

axios.post("/login/check.do",this.loginInfo).then((response) => {
    if(response.data.flag){
      //將服務端返回token保存在瀏覽器
      localStorage.setItem("token",response.data.data)  
      //登錄成功,跳轉到index.html
      window.location.href="index.html";
    }else{
      //失敗,提示失敗信息
      this.$message.error(response.data.message);
    }

然後需要寫一個js文件在需要進行獲取token的頁面導入

存入網頁的請求頭內

// 添加請求攔截器
axios.interceptors.request.use(function (config) {
    // 在發送請求之前將登錄保存的token添加在請求頭裏面
    config.headers.token = localStorage.getItem("token")
    return config;
}, function (error) {
    // 對請求錯誤做些什麼
    return Promise.reject(error);
});

添加spring攔截器

獲取token

public class TokenInterceptors implements HandlerInterceptor{
    
    @Autowired
    private JedisPool jedisPool;
    
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //獲取頁面攜帶的Token
        String token = request.getHeader("token");
        //通過token查看是否存在此用戶
        String s = null;
        try {
            s = jedisPool.getResource().get(token);
            if (s.equals("")||s==null){
                return false;
            }
        } catch (Exception e) {
            return false;
        }

        return true;
    }
}

springmvc中的配置

  <!-- 註冊自定義的攔截器 -->
    <mvc:interceptors>
        <mvc:interceptor>
            <!-- 攔截所有請求 -->
            <mvc:mapping path="/order/**"/>   //需要進行攔截的requestMapping 的請求行爲

            <!-- 自定義攔截器的全路徑 -->
            <bean class="com.zyfmobile.interceptors.TokenInterceptors"/>
        </mvc:interceptor>
    </mvc:interceptors>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章