2.具体操作步骤
1、将导航到smartbi\vision\js\freequery\lang\JSLoader.js拖放到本地文件夹中,然后将其添加到自己的项目中。如果使用的是smartbi.war,则可用WinRAR之类的压缩工具打开部署文件smartbi.war并导航到smartbi.war\vision\js\freequery\lang目录下,来获得JSLoader.js。
2、需要修改添加到项目中的JSLoader.js文件。打开该文件,将最后部分的9行代码注释或删除掉,如下图中红色矩形框标示的部分。
3、在第三方系统处理用户登录的代码位置(比如登录成功后的代码处理分支处),插入以下单点登录Smartbi的代码。对调用login方法的返回结果进行测试,为true则登录成功;否则登录失败。
4、完整的示例代码如下。
5、至此单点登录就完成了。但是如果Smartbi与第三方系统部署在不同的机器上,或者部署在同一机器不同的应用服务器域下,即出现跨域访问,则系统在访问过程中有可能出现各种奇怪问题。解决跨域访问,请参考:Smartbi与第三方系统集成跨域问题解决办法。
6、gif演示示例的源码请参考:使用浏览器端SDK单点登录到Smartbi.rar。
注意!
JSLoader.js不支持file协议,如果使用该js库的HTML直接在本地打开会报错下面的错误。必须要将其部署到网络上,通过HTTP等协议访问才能正常工作。
报错信息如下:XMLHttpRequest cannot load ${本地URL}. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.