cookie的存储与删除
首先在登录之后将用户的cookie存起来
public static void addCookie(HttpServletResponse response, String name, String value, int maxTime){
Cookie cookie;
try {
if(value != null){
cookie = new Cookie(name, URLEncoder.encode(value,"utf-8"));
cookie.setMaxAge(maxTime);
cookie.setDomain(DOMAIN);
cookie.setPath("/");
response.addCookie(cookie);
}
} catch (UnsupportedEncodingException e) {
return;
}
}
同时我也在CookiesUtils这个类里定义了存入的cookie名字:
public static final String COOKIE_MDMOOC_VIDEO_ADMIN = "cookie_mdmooc_video_admin";
将token存入cookie,不能明文存入
public String Login(String account, String password, HttpServletResponse response){
//todo 数据库获得一个用户
EntityWrapper<TencentUser> wrapper = new EntityWrapper<>( );
wrapper.where( "account={0}",account ).and("password={0}",password);
List<TencentUser> list = tencentUserService.selectList(wrapper);
if (list.size()<=0||list == null){
return String.valueOf( BaseResultData.ERROR( 500,"账号或密码错误" ) );
}
UserInfo userInfo=new UserInfo();
userInfo.setAccount(list.get( 0 ).getAccount());
userInfo.setUserType(list.get( 0 ).getUserType());
String token = jwtHelper.createToken(userInfo);
CookiesUtils.addCookie( response,CookiesUtils.COOKIE_MDMOOC_VIDEO_ADMIN,token,60*60*12 );
return token;
}
如果想要退出登录,就需要删除cookie
public static void removeCookie(HttpServletRequest request, HttpServletResponse response, String name){
Cookie[] cookies = request.getCookies();
if (null != cookies) {
for (int i = 0; i < cookies.length; i++) {
if (cookies[i].getName().equals(name)){
cookies[i].setPath("/");
cookies[i].setMaxAge(0);
cookies[i].setDomain(DOMAIN);
response.addCookie(cookies[i]);
break;
}
}
}
}
如果前后端没有分离的话,可以在后端将cookie删除
@RequestMapping(value = "/exit")
public String toExit(HttpServletRequest request, HttpServletResponse response) {
CookiesUtils.removeCookie(request, response, CookiesUtils.COOKIE_AM_USER_ADMIN);
return "redirect:login";
}
但是如果分离的话,可以在前端利用jQuery删除,删除之前我们需要引用js
<script src="///jquery/1.12.4/"></script>
<script src="///jquery-cookie/1.4.1/"></script>
然后记住我们存入的cookie名字,删除就可以了
$.removeCookie('cookie_mdmooc_video_admin',{ path: '/'});