单点登录

单点登录:是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分

1、获取登录页面的表单信息: 用户名,密码等,

eg:  var username = document.getElementById("hidUsername").value; //此处是用来提取登录用户名
            var password = document.getElementById("hidPassword").value; //此处是用来提取登录密码

2、在其他的页面 通过用cookiesession等缓存的方式获得 登录的用户名和密码;

 a、如果用iframe ,动态把iframe添加到head中

eg:////单口登录获取
            var getNameCookie = $cookies.get("usr_name"); //cookie获取 angularjs定义$cookies  或 $.cookie("cookieName")//取出值
            var getPwdCookie = "1qaz2wsx";
            var scr = document.createElement("iframe");      //创建iframe    
            //scr.src = "http://local:8888/Report/Server?op=fs_load&cmd=sso&fr_username=" + getNameCookie + "&fr_password=" + getPwdCookie;   //将报表验证用户名密码的地址指向此iframe    
            scr.src = "http://local:8888/Report/Server?op=fs_load&cmd=sso&fr_username=admin&fr_password=1qaz2wsx";   
            if (scr.attachEvent) {       //判断是否为ie浏览器    
                scr.attachEvent("onload", function () {                    //如果为ie浏览器则页面加载完成后立即执行    
                    var f = document.getElementById("Button1");   //登录页面按钮ID
                    f.click();
                });
            } else {
                scr.onload = function () {              //其他浏览器则重新加载onload事件    
                    var f = document.getElementById("Button1");
                    f.click();
                };
            }
            document.getElementsByTagName("head")[0].appendChild(scr);   //将iframe标签嵌入到head中 

  b、ajax方式

     

  • function doSubmit() {    
  •      var username = FR.cjkEncode(document.getElementById("username").value); //获取输入的用户名    
  •      var password = FR.cjkEncode(document.getElementById("password").value);  //获取输入的参数  
  •      jQuery.ajax({    
  •      url:"http://localhosReport/Server?op=fs_load&cmd=sso",//单点登录的管理平台服务器    
  •      dataType:"jsonp",//跨域采用jsonp方式    
  •      data:{"fr_username":username,"fr_password":password},//获取用户名密码    
  •      jsonp:"callback",    
  •      timeout:5000,//超时时间(单位:毫秒)    
  •      success:function(data) {    
  •             if (data.status === "success") {   
  •              window.location=data.url;//认证成功跳转页面,因为ajax不支持重定向所有需要跳转的设置   
  •                   //登录成功       
  •             } else if (data.status === "fail"){    
  •                  alert("用户名或密码错误");//登录失败(用户名或密码错误)    
  •             }    
  •      },    
  •      error:function(){    
  •            alert("超时或服务器其他错误");// 登录失败(超时或服务器其他错误)    
  •      }    
  • });  
  •   }

帮助学习文档:http://help.finereport.com/

原文地址:https://www.cnblogs.com/wuchuanlong/p/8527747.html