一、登录流程
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; // 过期时间
}