我前端先请求了后台的登录接口,提示登录成功了。
然后我再请求数据,这时候接口返回来的是未登陆,查了下发现session id变了,所以后台判断还是未登陆。
js代码:
$(function(){
$.get("http://server/admin/login/?adminName=root&password=123123",function(data){
console.log(data); //return log in success
$.get("http://server/admin/users?page=1&count=10",function(data){
console.log(data); // return 'not log in'
})
})
})
后台的java代码:
public Object login(HttpServletRequest request,HttpServletResponse response){
try{
String adminName = request.getParameter("adminName");
String password = request.getParameter("password");
CheckUtils.checkNotNull(ErrorCode.PARAM_NOT_ENOUGH, adminName , password);
logger.info("sessionId"+ request.getSession().getId());// sessionId changed
Admin admin = adminService.login(adminName,password);
return new ModelView(admin);
}catch(Exception e){
return new ModelException(e).getModelView();
}
}
public Admin login(String adminName, String password) {
Admin admin = adminRepo.getAdminByName(adminName);
CheckUtils.checkNotNull(ErrorCode.ADMIN_NAME_ERROR, admin);
CheckUtils.checkTrue(ErrorCode.ADMIN_PASSWORD_ERROR, "password wrong", admin.getPassword().equals(StringUtil.encryptToMd5(password)));
admin.filter();
sessionAuth.addSession(admin);
return admin;
}
在js里面请求session id就变了,但是我把接口连接拿出来 直接浏览器访问,先访问登录接口,再访问请求数据的接口,这时候是可以拿到数据的,而且session id也没变,这是什么原因?