AJAX 跨域单点登录示例

编辑
  • 文档创建者:jiangsr
  • 浏览次数:4112次
  • 编辑次数:5次
  • 最近更新:Kevin-s 于 2019-06-08
  • 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:8080/webroot/decision/login/cross/domain',
                    data: {'fine_username': 'admin', 'fine_password': '123456', 'validity': -1},
                    dataType: 'jsonp',
                    callback: 'callback',
                    success: function (data) {
                        alert('登录成功');
                    },
                    error: function () {
                        alert('登录失败');
                    }
                });
            });
            $('#wb1').click(function () {
                window.open('http://localhost:8080/webroot/decision/view/report?viewlet=GettingStarted.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

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