jquery
<script type="text/javascript">
$(function () {
var ticket = $.cookie("DN_TICKET");
$.ajax({
type:"post",
url:"http://sso.ajstore.com/checkLoginJsonP.html",
dataType:"jsonp",
jsonp:"callback",
success:function(result){
var user = result.data;
console.log(result);
if (result.status === 200) {
$("#iul").append('<li><a href="/lookforward.html">'+user.username+'</a><b>|</b></li><li><a href="javascript:;" onclick="logout()">退出</a></li>');
}else if(result.status === 500){
$("#iul").append('<li><a href="http://sso.ajstore.com/toLogin.html">登录</a></li>');
}
},
error:function(textStatus,XMLHttpRequest){
alert("系统异常!"+JSON.stringify(textStatus)+" ------ "+XMLHttpRequest);
}
});
})
</script>
服务器端
@RequestMapping("/checkLoginJsonp")
@ResponseBody
public void checkLoginJsonp(HttpServletRequest request, HttpServletResponse response, String callbackFunctionName) throws IOException{
PrintWriter out = response.getWriter()
//获取ticket
String ticket=CookieUtils.getCookieValue(request, "AJSTORE-TICKET")
if(ticket==null){
AjiaResult result = AjiaResult.build(500, "未登录")
String returnStr = callbackFunctionName+"("+JsonUtils.objectToJson(result)+")"
out.write(returnStr)
out.close()
return
}
//取redis中寻找用户
Jedis jedis = jedisUtils.getJedis()
String userJson = jedis.hget(ticket, "SESSION_USER")
if(userJson==null){
AjiaResult result = AjiaResult.build(500, "未登录")
String returnStr = callbackFunctionName+"("+JsonUtils.objectToJson(result)+")"
out.write(returnStr)
out.close()
return
}
//又需要用到这个用户,我们需要把redis中该ticket的生存时间重置为30分钟
jedisUtils.expire(ticket)
AjiaUser user = JsonUtils.jsonToPojo(userJson, AjiaUser.class)
AjiaResult result = AjiaResult.ok(user)
String returnStr = callbackFunctionName+"("+JsonUtils.objectToJson(result)+")"
out.write(returnStr)
out.close()
}