平台系统单点登录接口

编辑
  • 文档创建者:文档助手1
  • 浏览次数:39388次
  • 编辑次数:20次
  • 最近更新:Kevin-s 于 2019-06-08
  • 1. 描述

    实际情况中,企业不会只有一个报表平台,多个不同的平台,或者相关的平台,如果每个平台登录都需要进行一次用户认证,对使用者而言非常麻烦。因此大的企业往往有统一的用户认证,用户用一个账号可以同时登陆所有系统,甚至是使用域用户管理,这个时候就需要使用到单点登录,即在登陆系统的同时也登陆报表(即将输入的用户名密码也发送到报表服务进行认证),从而访问报表时不需要再次登录。

    FR 报表系统实现单点登录有3种方式:iframe 方式Ajax 方式表单提交方式

    注:Ajax 登陆方式支持 7.0.4 及以上版本。

    不论是哪一种登陆方式,FR 报表系统都为用户提供了统一的接口,接口如下:

    http://localhost:8080/webroot/decision/login/cross/domain?fine_username=XX&fine_password=XX&validity=-1&callback=

    注 1:10.0 中关于用户名和密码的参数,全部统一为 fine_username和fine_password。

    注 2:validity 表示有效期,-1 表示关闭浏览器清除,-2 表示记住密码(默认 14 天),大于 0 为具体时间,单位毫秒;具体参数说明可参考:登录登出接口

    注 3:该接口不仅可用来做单点登录,也可用作自定义登录界面。

    单点登录时保持登录,将参数 validity 的值改为 -2,示例如下:

    http://localhost:8080/webroot/decision/login/cross/domain?fine_username=XX&fine_password=XX&validity=-2&callback=

    不同的登录方式使用接口进行单点登录的实现方式是不一样的,以下我们根据不同的登录方式详细介绍。

    2. Ajax 方式

    Ajax 登录方式支持跨域,相对于 iframe 方式来说,Ajax 的身份验证是异步验证,同时对于验证超时做了处理,具体用法可查看 Ajax 跨域异步单点登录 

    $.ajax({
        url: 'http://localhost:8080/webroot/decision/login/cross/domain',
        data: {'fine_username': 'username', 'fine_password': 'password', 'validity': -1},
        dataType: 'jsonp',
        callback: 'callback',
        success: function (data) {
            alert('登录成功');
        },
        error: function () {
            alert('登录失败');
        }
    });

    3. iframe 方式

    iframe 方式单点登录的接口为:

    FR.servletURL + "/login/cross/domain?fine_username=XX&fine_password=XX&validity=-1&callback=",具体用法可查看 iframe跨域单点登陆

    var scr = document.createElement("iframe");      //创建iframe    
       scr.src = " http://localhost:8075/webroot/decision/login/cross/domain?fr_username=" + username + "&fr_password=" + password+"&validity=-1"+"&callback=";   //将报表验证用户名密码的地址指向此iframe      
       if (scr.attachEvent){       //判断是否为ie浏览器  
                   scr.attachEvent("onload", function(){                    //如果为 IE 浏览器则页面加载完成后立即执行  
    window.location=" http://localhost:8075/webroot/decision"; //直接跳转到数据决策系统
                   });  
                } else {  
                   scr.onload = function(){              //其他浏览器则重新加载 onload 事件  
                    window.location=" http://localhost:8075/webroot/decision"; //直接跳转到数据决策系统  
                   };  
             }  
           
         document.getElementsByTagName("head")[0].appendChild(scr);   //将 iframe 标签嵌入到 head 中

    4. 表单提交方式

    报表权限验证时直接使用 action 触发 URL 进行验证,URL 的验证地址与 iframe 的验证地址相同,具体可查看 表单 action 提交登陆

    5. iframe 方式和 Ajax 方式的区别

    iframe 方式和 Ajax 方式均可以实现跨域单点登录,Ajax 可以实现异步的单点登录,并且可对报表系统验证的结果进行处理,如登录超时,但是 iframe 不可以异步处理,并且在进行报表验证的时候,无法对验证的结果进行处理。

    6. 短信验证登录

    开启短信验证时,登录接口将返回

    {needSMSVerification: true, mobile: xxxx},xxx 即为需要接受验证码的手机号。 需要自己提供界面给用户来点击发送验证码和校验验证码登录。

    发送和验证验证码的接口分别是,

    发送验证码接口:

    FR.servletURL + "?op=fs_load&cmd=send_verification_code&isforget=false&&verification_type=SMSVerification&username=XX&emailorphone=YY

    其中 XX 为用户名,YY 为登录接口返回的手机号

    验证验证码并登录的接口:

    FR.servletURL + "?op=fs_load&cmd=sso&fr_username=XX&fr_password=XX&verification_type=SMSVerification&emailorphone=YY&SMSVerification=ZZ

    其中 YY 为登录接口返回的手机号,ZZ 为用户输入的验证码


    附件列表


    主题: 部署集成
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]