• 单点登录


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

    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/

  • 相关阅读:
    2017.12.16 扫雷小游戏未完成
    2017.12.15 计算机算法分析与设计 枚举
    2017.12.14 Java实现-----图书管理系统
    2017.12.13 Java中是怎样通过类名,创建一个这个类的数组
    2017.12.12 基于类的面向对象和基于原型的面向对象方式比较
    2017.12.11 String 类中常用的方法
    2017.12.10 Java写一个杨辉三角(二维数组的应用)
    2017.12.9 Java中的排序---冒泡排序、快速排序、选择排序
    spring boot compiler 版本实践
    spring boot 首次请求Controller慢
  • 原文地址:https://www.cnblogs.com/wuchuanlong/p/8527747.html
Copyright © 2020-2023  润新知