AJAX 跨域单点登录示例

编辑
  • 文档创建者:jiangsr
  • 浏览次数:5013次
  • 编辑次数:6次
  • 最近更新:Carly 于 2019-07-18
  • 1. 描述

    FR10.0 推出新的单点登录接口,推荐使用,下面详细介绍。

    各登录接口说明请参考:登录登出接口

    注:FR10.0 兼容 9.0 老的单点登录接口,可用老单点登录方式。但 FR10.0 集群环境不兼容 9.0 单点登录方式。

    2. 思路

    Ajax 登录方式天然支持跨域,故在 OA 系统的登录界面中直接通过 Ajax 将用户名密码发送到报表服务器进行后台验证,则可解决跨域单点登录问题。

    3. 示例

    点击登录按钮时,触发该事件,即可以实现跨域单点登录,代码如下:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
       <meta charset="utf-8">
       <title>10.0单点登录示例</title>
    </head>
    <script type="text/javascript" src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>
    <script type="text/javascript">
       $(document).ready(function () {
           $('#login').click(function () {
               $.ajax({
                   url: 'http://localhost:8075/webroot/decision/login/cross/domain',
                   data: {'fine_username': 'admin', 'fine_password': '123456', 'validity': -1},
                   dataType: 'jsonp',
                   callback: 'callback',
                   success: function (data) {
                       
        if(!data.errorCode) {
         alert("登录成功");
        } else{
         alert("登录失败")
        }
                   },
                   error: function () {
                       alert('登录失败');
                   }
               });
           });
           $('#wb1').click(function () {
               window.open('http://localhost:8075/webroot/decision/view/report?viewlet=demo/analytics/图表联动.cpt')
           });
       });

       function setCookie(name, value) {
           document.cookie = name + "=" + escape(value);
       }

       function getCookie(name) {
           var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
           if (arr = document.cookie.match(reg)) {
               return unescape(arr[2]);
           } else {
               return null;
           }
       }
    </script>
    <body>
    <button id="login">点击我登录</button>
    <a id="wb1">点我访问GettingStarted.cpt</a>

    </body>
    </html>

    注:将访问 URL、用户名及密码替换成自己的,即可实现单点登录。

    注:参考 登录登出接口,实现更多功能。

    4. 查看效果

    将上述单点登录代码保存为 sso.html,放在%FR_HOME%/webapps/webroot下,则访问时效果如下图所示:



    5. 注意事项

    跨域单点登录需改将管理系统>安全管理-安全防护的「内容嗅探攻击防护」关闭,否则会报错,如下图所示:



    附件列表


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

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

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