非跨域登录接口

编辑
  • 文档创建者:susie
  • 浏览次数:1584次
  • 编辑次数:13次
  • 最近更新:Wendy123456 于 2019-11-14
  • 1. 概述

    1.1 描述

    平台系统单点登录接口 是适合在 Web 或者跨域场景使用的,返回的数据结构为 JSONP。

    其他比如 Android 原生,或者 Java 后台调用单点接口获取 Token,如果使用上面跨域的接口,结果请求回来的数据不是标准 JSON,都是({accesstoken:xxx}),被括起来了,需要再去掉括号,取 Token。

    安卓原生不存在跨域问题,可以直接使用普通登录的接口,返回的数据结构直接使用的 JSON 即可。

    1.2 接口

    详细点击 决策平台在线接口文档 中的 登录登出 章节。

    3. 示例

    3.1 完整代码

    完整代码如下所示:

    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; " charset="UTF-8">
        <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
        <script type="text/javascript">
            function doSubmit() {
                var username = document.getElementById("username").value.trim();
                var password = document.getElementById("password").value.trim();
                if (username === "") {
                    window.alert("请输入用户名");
                    return false;
                }
                if (password === "") {
                    window.alert("请输入密码");
                    return false;
                }
                var url = "/webroot/decision/login";
          var data = {
            username: username,
            password: password,
            validity: -2,  //是否保持登录,-2表示是
            origin: ""
          };
                jQuery.ajax({
            type: "POST",
                    url: url,
            dataType: "json",
            contentType: "application/json",
                    data: JSON.stringify(data),
                    success: function (res) {
                        console.log(res);
                        if (res.errorCode) {
                            window.alert(res.errorMsg);
                        }else {
                            // 保存token并跳转到对应链接
                var tokenCookie = "fine_auth_token=" + res.data.accessToken + ";path=/";
                if(res.data.validity === -2) {
                  var exdate = new Date();
                  exdate.setDate(exdate.getDate() + 14);
                  tokenCookie += ";expires=" + exdate.toGMTString();
                }
                document.cookie = tokenCookie;
                            window.location.href = res.data.url;
                        }
                    },
                    error: function () {
                        alert("超时或服务器其他错误");// 登录失败(超时或服务器其他错误)
                    }
                });
            }
        </script>
    </head>
    <body>
    <p>请登录</p>
    <form id="login" name="login" method="POST" action="">
        <p>用户名:<input id="username" type="text" name="username"/></p>
        <p>密 码:<input id="password" type="password" name="password"/></p>
        <input type="button" value="登录" onClick="doSubmit()"/>
    </form>
    </body>
    </html>

    3.2 保存预览

    将本文 3.1 章节中的代码另存为 login.html,保存到 %FR_HOME%/webroot/ 路径下。

    启动设计器,输入http://localhost:8075/webroot/login.html,效果如下图所示:

    1571895451563871.gif

    附件列表


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

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

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