zoukankan      html  css  js  c++  java
  • 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);
            }
        });
    }
  • 相关阅读:
    python 学习笔记7(类/对象的属性;特性,__getattr__)
    linux 误删文件恢复
    python 学习笔记6(数据库 sqlite)
    hive 函数 Cube
    边标志法填充多边形
    tolua#代码简要分析
    CocoaAsyncSocket + Protobuf 处理粘包和拆包问题
    【设计模式】适配器模式
    【设计模式】外观模式
    【操作系统】进程管理(二)
  • 原文地址:https://www.cnblogs.com/brantshi/p/4074545.html
Copyright © 2011-2022 走看看