a.com登录成功后 b.com也可以正常访问
清空a.com的cookie信息
b.com登录信息也失效
思路:
1、主要根绝ajax使用jsonp跨域请求时候 同一个单点服务器会使用相同的session 整个项目sessionId相同
2、任何一个项目登录之后 将sessionId和登录成功的用户信息保存到redis中
3、其他站点使用JsonP请求验证登录的接口 如果能通过sessionId从缓存中读取到用户信息 说明当前用户已经登录
**注:**一定要使用单点登录验证服务器 有效避免多服务器导致sessionId重复 出现登录用户串台问题
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
</head>
<body>
<button id="btn" type="button">测试请求</button>
<script src="https://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
<script>
$(function() {
$.ajax({
type: "get",
async: false,
url: "http://127.0.0.1:8080/webapi/extSmeCustLogin/syncLoginStatus",
dataType: "jsonp",
jsonp: "callback", //传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
jsonpCallback: "jsonpCall", //自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据
success: function(jsons) {
Console.log(jsons);
},
error: function() {
Console.log('fail');
}
});
});
$("#btn").click(function() {
$.ajax({
url: "http://127.0.0.1:8080/webapi/partyCollection/count?partyId=1082&partyType=3",
async: false,
dataType: "jsonp",
success: function(data) {
alert(data.message);
}
});
});
</script>
</body>
</html>