jsonp 实现sso

这几天用jsop实现了公司的sso。

这里面最重要的是对cookie的理解。

cookie 就是一个网站存于本地的数据,zai下次请求同一个网站时,发送给服务器,服务器端可以进行AUD操作,这种操作后的数据会返回并保留在本地,等待下次请求。

对同一个网站,不管是网页,ajax,或者jsonp请求,cookie都会被发送到服务器。

利用jsonp把sso站点的cookie,传送登录站点,解析后,通过回调,传送给当前站点,就完成了sso的登录功能。

其实就是,cookie只和被请求站点有关,任何方式对站点的请求,只会传送被请求站点的cookie,和发起请求的站点无关。

 private void ReturnUserInfo(WebUser user,string token,string userJson)
        {
            HttpContext.Current.Response.Write(callbackName + "({"result":"0","uname":"" + user.RealName + "","token":"" + token + "","data":"" + userJson + ""});");
            HttpContext.Current.Response.End();
        }
//ajax
function GetJsonpData(callback,data,url) {
    $.ajax({
        async: false,
        crossDomain: true,
        type: "GET",
        dataType: "jsonp",
        jsonpCallback: callback,
        //jsonp: "callback", //默认callback         
        url: url,
        data: data,
        contentType: "application/json; charset=utf-8",
        success: function (json) { },
        beforeSend: function () { },
        complete: function (data, status) { },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            var t1 = textStatus;
            var t2 = XMLHttpRequest.status;
            var t3 = XMLHttpRequest.readyState; ;
            var t4 = XMLHttpRequest.responseText;
//            alert(textStatus);
        }
    });
}
原文地址:https://www.cnblogs.com/brantshi/p/4074545.html