历史版本19 :前台单点登录接口 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

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_usernamefine_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为用户输入的验证码