一般用戶登陸的時候,服務器根據用戶名和密碼在服務器數據庫中校驗該用戶是否正確,校驗正確後則能夠根據用戶ID和時間戳等屬性加密生成一個Token,並返回給瀏覽器。
生成一個ticket的例子:web
WebUtils.saveCookie(response, 「ticket」, webTicket, -1, "/", null);
這樣瀏覽器就會獲得一個cookie數據庫
只要這個訪問回話沒有關閉,全部訪問服務器的請求都會帶上這個cookie。瀏覽器
//僞代碼服務器
public class PassPortIntercepter extends HandlerInterceptorAdapter { public boolean preHandler(HttpServletRequest request, HttpServletResponse response) { //攔截請求 String ticket = request.getParameter("ticket"); //根據ticke解密用戶的id long id = SessionUtil.build(ticket).getUserId(); //再從數據庫中訪問是否存在這個用戶 UserInfo user = userInfoService.getUserBy(id); //若是不存在user,講該請求攔截,並跳回登陸頁 if(user == null) { return false; } return super.preHandle(request, response, handler); } }