jsonp 实现sso

本文介绍了使用JSOP技术实现单点登录(SSO)的过程,并详细解释了如何利用cookie完成跨域的身份验证。通过JSONP将SSO站点的cookie传递给登录站点,最终实现用户的无缝登录体验。

这几天用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值