模拟登录,用的 php 的 guzzle,抓包这个 url,没发现什么特殊的地方,用 guzzle 和 curl 模拟,cookie 和 header 都试过了,始终返回 302,用浏览器直接访问都是一直循环 302,下面他代码里面访问这个 url 的 js ajax 写法,求分析,谢谢。
/*
* 文件名: sso.js
* 描述: 提供对 CAS 单点登录的封装
*
* 功能说明:
* 实现多个应用之间的单点登录( SSO )功能,应用可以部署在不同的域名。容器的退出直接写在头里,避免 JS 过多加载
*
* 版本: 1.0.0.1
* 作者: [email protected]
* 日期:2013/10/20
*/
$.ajax({
url: loginURL,
type: "GET",
dataType: 'jsonp',
jsonp: "callback",
data: params,
crossDomain: true,
cache: false,
success: function (html) {
html = $.trim(html).replace(/\t/g, '');
var resultobj = eval("("+html+")");
if (resultobj.result && resultobj.result == "success") {
if (parseInt(resultobj.code) == 1000 && (!retry)) {
//try again
_this._realCasLogin(callback, params, true);
return;
}
//Ajax to service
if (resultobj.data && resultobj.data.st) {
_this._serviceLogin(callback, params.username, params.password, resultobj.data.st);
return;
}
}
_this._callback(callback, resultobj);
},
error: function (data) {
var resultobj = {result: "fail", code: "-1", data: "登录 CAS 失败,出现异常!"};
_this._callback(callback, resultobj);
}
});