1. 概述
本文将介绍产品支持的单点登录接口。
注:我们提供帆软单点相关的官方接口,只解决官方接口调用相关的问题。若用户在实际操作过程中,出现非接口之外的错误,请联系用户公司的技术人员进行排查解决。
2. 前台单点登录
需要将用户名及密码等信息放在 url 后面进行登录验证,配合 iframe 或者 ajax 可实现前台的跨域单点登录行为。只需要在用户的登录页面加上该接口的调用,后台无需进行适配。需要用户系统的账号和密码与帆软平台账号密码相同。
2.1 接口介绍
FineReport 报表系统实现前台单点登录有 2 种方式:iframe 方式、Ajax 方式。
不论哪一种登录方式,FineReport 报表系统都为用户提供了统一的接口,接口如下所示:
注:该接口为 get 请求。
http://localhost:8080/webroot/decision/login/cross/domain?fine_username=XX&fine_password=XX&validity=
-2&callback=
参数说明如下表所示:
参数 | 是否必须 | 备注 |
---|---|---|
fine_username | 是 | 用户名 |
fine_password | 是 | 密码 |
encrypted | 否 | 密码是否是加密后的密文 值为true: 必须对用户输入的密码进行 AES 加密后才能正常使用接口 注:推荐不加密,无需在接口中使用该参数 |
validity | 是 | 值为-2: 表示保持登录,保持登录就是 14 天的时间 值为-1: 非保持登录,时长跟随:管理系统>系统管理>登录>登录超时时间 注:单点登录时保持登录,将参数 validity 的值改为 -2 |
callback | 否 | - |
在浏览器中输入 URL :http://localhost:8075/webroot/decision/login/cross/domain?validity=-1&fine_username=账号&fine_password=密码,如果返回 success 代表单点接口调用成功,如图所示:
2.2 其他说明
其他说明如下所示:
该接口不仅可用来做单点登录,也可用作自定义登录界面。更多接口内容请参考:决策平台在线接口文档
需在平台关闭名为「内容嗅探攻击防护」的按钮,如果是内嵌的 iframe ,还需要关闭「点击劫持攻击防护」按钮。按钮介绍请参见:安全防护
登录返回的 token 存储在 cookie ,确保浏览器没有禁用 cookie,同域的 OA 或者其他系统不能把 cookie 设置为HttpOnly。
由于用户信息是在 url 上的,可能出现 URL 字符,建议使用 encodeURIComponent 进行一次编码。编码转换详情请参见:编码转换
对于部分 IE 浏览器,需要将目标站点添加到受信任列表中。
2.3 Ajax 与 iframe 区别
iframe 方式和 Ajax 方式两种登录方式均可实现单点登录的跨域,但 Ajax 可以实现异步的单点登录,并且可对报表系统验证的结果进行处理,如登录超时;但是 iframe 不可以异步处理,并且在进行报表验证的时候,无法对验证的结果进行处理。