登錄驗證流程及token處理
一、登錄流程
1、先驗證驗證碼,通過以後調用登錄接口驗證密碼,否則返回登錄頁。
2、驗證密碼,如果相等返回result,否則返回空的result。
3、在controller中獲取result成功驗證token,否則返回登錄。
4、驗證token是否在cookie中,如果在則登錄成功,否則生成token放到sso cache中(一般用redis或者memcached中)
然後在放入cookie登錄成功。
下面是登錄的流程圖:
二、過濾器驗證
1、首先在cookie中獲取token驗證token是否存在。
2、如果存在驗證token的正確性和是否過期,驗證不通過返回登錄頁,通過執行過濾器鏈。
3、如果token不存在,去內存中獲取token。
4、獲取不到返回登錄頁面,獲取到以後寫入cookie然後重定向訪問路徑。
過濾器驗證流程圖:
三、一些相關代碼設計
User:
public class User {
private Integer userId;
private String userName;
private String userPassword;
private String userEmail;
}
Result:
public class Result {
/**
* 結果體
*/
protected Object data;
/**
* 狀態碼
*/
protected Integer code;
/**
* 信息
*/
protected String message;
private Result() {
super();
}
}
token格式:
private class DummyUser {
private LoginUser loginUser;//用戶信息類
private Date expired; // 過期時間
}
登錄驗證流程及token處理