<!DOCTYPE html>
<html lang="zh">
<head>
    <title>统一身份认证</title>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="renderer" content="webkit">
    <link rel="stylesheet" href="/css/index.css">
    <!--[if lt IE 9]>
    <script src="/js/respond.min.js"></script>
    <![endif]-->
    <script src="/js/jquery-3.7.1.min.js"></script>
    <script src="/js/sm2.min.js"></script>
</head>
<body>
<iframe id="loginIframe" style="display: none;"></iframe>
<div id="default" class="container">
    <div style="font-size: large;display: flex;justify-content: center;">页面加载中...</div>
    <div style="visibility: hidden"
         class="border col-lg-4 col-lg-offset-4 col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3">
        <div class="system">统一身份认证</div>
        
        <form method="post" id="loginForm">
            <div class="form-group">
                <label>
                    <span>用户名</span>
                    <input type="text" class="form-control" name="username">
                </label>
            </div>
            <div class="form-group">
                <label>
                    <span>密码</span>
                    <input type="password" class="form-control" name="password" autocomplete="off">
                </label>
            </div>
            <div class="form-group" style="display: none;" id="captchaParent">
                <label>
                    <span style="display: none;"
                          id="captchaLabel">验证码</span>
                    <div id="captchaDiv"></div>
                </label>
            </div>
            <div class="form-group">
                <input class="btn btn-login" type="submit" name="submit" value="登录">
            </div>

            <div style="display: none;">
                
                <input name="loginType"
                       value="username_password"/>
                <input name="flowId" value=""/>
                <input name="captcha" value=""/>
                <input name="delegator" value=""/>
                <input name="tokenCode" value=""/>
                <input name="continue" value=""/>
                <input name="asserts" value=""/>
                <input name="pageFrom" value=""/>
            </div>
        </form>
        <button onclick="doSendSms()">测试短信</button>
        <div class="hint">此页面为兼容性视图<br/>请使用Chrome等现代浏览器以获取最佳体验</div>
    </div>
</div>
<div id="language" style="display: none">zh_cn</div>
<script type="text/javascript">
    var lastSmsCode = ''; // 最近接收的短信验证码
    function getParameterByName(name, url) {
        if (!url) url = window.location.href;
        name = name.replace(/[\[\]]/g, '\\$&');
        var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)');
        var results = regex.exec(url);
        if (!results) return null;
        if (!results[2]) return '';
        return decodeURIComponent(results[2].replace(/\+/g, ' '));
    }

    function getPageConfig() {
        return config;
    }

    function doLogin(params) {
        if (firstLogin) firstLogin = false;
        else return;
        if (config.sm2.enabled && !params.skipEncrypt) {
            if (params.password) {
                params.password = sm2.encrypt(params.password, config.sm2.publicKey);
            }
        }
        $("#loginForm input[name='username']").val(params.username);
        $("#loginForm input[name='password']").val(params.password);
        $("#loginForm input[name='loginType']").val(params.type);
        if (params.captcha) {
            $("#loginForm input[name='captcha']").val(params.captcha);
        }
        if (params.delegator) {
            $("#loginForm input[name='delegator']").val(params.delegator);
        }
        if (params.tokenCode) {
            $("#loginForm input[name='tokenCode']").val(params.tokenCode);
        }
        if (params.rememberMe) {
            $("#loginForm input[name='rememberMe']").attr('checked', params.rememberMe);
        }
        if (params.continue) {
            $("#loginForm input[name='continue']").val(params.continue);
        }
        if (params.asserts) {
            $("#loginForm input[name='asserts']").val(params.asserts);
        }
        if (params.pageName) {
            $("#loginForm input[name='pageFrom']").val(params.pageName);
        }
        $("#loginForm input[name='submit']").click();
    }

    function doSendSms(params) {
        lastSmsCode = '';
        var flowId = $("#loginForm input[name='flowId']").val();
        var data = {
            flowId: flowId,
            username: params.username
        }
        if (params.captcha) {
            data.captcha = params.captcha;
        }
        $.ajax({
            url: config.contextPath + "/api/sms/send",
            type: "POST",
            data: data,
            success: function (res) {
                lastSmsCode = res.data;
                console.log(JSON.stringify(res))
                if (params.successCallBack) {
                    params.successCallBack(res)
                }
            },
            error: function (error) {
                console.log(error)
                if (params.errorCallBack) {
                    params.errorCallBack(error)
                }
            }
        })
    }

    function doSelectIdentity() {

    }

    function setLanguage(locale) {
        var fullURL = window.location.href;
        if (fullURL.indexOf('locale=zh_cn') !== -1) {
            window.open(fullURL.replace('locale=zh_cn', 'locale=' + locale), '_self');
            return;
        }
        if (fullURL.indexOf('locale=en') !== -1) {
            window.open(fullURL.replace('locale=en', 'locale=' + locale), '_self');
            return;
        }
        var baseURL = fullURL.split('?')[0];
        var params = window.location.search.substring(1);
        if (params.length > 0) params = '&' + params;
        window.open(baseURL + '?locale=' + locale + params, '_self');
    }

    function ie8() {
        return navigator.appName === "Microsoft Internet Explorer"
            && parseInt(navigator.appVersion.split(";")[1].replace(/[ ]/g, "").replace("MSIE", "")) <= 8;
    }

    var firstLogin = true;
    var config = {};
    config.flowId = $("#loginForm input[name='flowId']").val()

    // 当前语言
    config.locale = $("#language").text();
    // 登录目标系统
    var targetServiceName = $("#targetSystem").text() || null;
    if (targetServiceName) {
        config.service = {
            name: targetServiceName,
            href: getParameterByName('service') || getParameterByName('target') || getParameterByName('TARGET')
        };
    }

    var error = {"code":50001,"msg":"\u60A8\u8BF7\u6C42\u7684\u9875\u9762\u672A\u627E\u5230\uFF0C\u8BF7\u68C0\u67E5\u6D4F\u89C8\u5668\u5730\u5740\u3002","data":"No static resource sitemap.xml.","timestamp":1775241904837,"resType":"error","success":false,"error":true};
    if (error) {
        config.error = error
    }

    var serverContextPath = null;
    if (serverContextPath) {
        if (serverContextPath.endsWith('/')) {
            serverContextPath = serverContextPath.substring(0, serverContextPath.length - 1);
        }
    }
    config.contextPath = serverContextPath


    var delegatorList = null;
    if (delegatorList) {
        config.delegatorList = delegatorList;
    }

    var pageName = "error";
    if (pageName) {
        config.pageName = pageName;
    }

    var mfaType = null;
    if (mfaType) {
        config.mfaType = mfaType;
    }

    var ssoConfig = null;
    if (ssoConfig) {
        config = $.extend(config, ssoConfig)
        ssoConfig = null;
    }
    var noAutoRedirect = null;
    if (noAutoRedirect) {
        config.noAutoRedirect = noAutoRedirect;
    }
    var loginUserName = null;
    if (loginUserName) {
        config.loginUserName = loginUserName;
    } else {
        config.loginUserName = '';
    }

    window.onload = function () {
        document.getElementById('loginIframe').src = this.config.contextPath === null ? '' : this.config.contextPath + '/page/common.html?v=' + Date.now();
        document.getElementById('loginIframe').style.display = 'block';
    };
    window.addEventListener('message', function (event) {
        if (event.origin === window.location.origin) {
            if (event.data.type === "school_qr_login") {
                window.location.href = event.data.url;
            }
        }
    });
</script>
</body>
</html>