element-ui后台系统接入阿里云无痕验证

阿里云无痕验证链接

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <script src="https://g.alicdn.com/AWSC/AWSC/awsc.js"></script>
</head>
<body>
<form id="login-form">
    <input id="account" type="text" placeholder="账号"/>
    <input id="password" type="password" placeholder="密码">
    <button type="button" id="register">注册</button>
</form>
<div id="nc"></div>

<input type="hidden" name="data" id="nvc_data">

<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script>
    var nvc_data = document.getElementById('nvc_data')


    //todo  点击登录按钮后,先走以下逻辑,然后再走原来的登录逻辑
    var btn = document.getElementById("register");
    // 实例化nvc 对无痕验证进行初始化操作
    AWSC.use("nvc", function (state, module) {
        // 初始化 调用module.init进行初始化
        window.nvc = module.init({
            // 应用类型标识。它和使用场景标识(scene字段)一起决定了无痕验证的业务场景与后端对应使用的策略模型。您可以在阿里云验证码控制台的配置管理页签找到对应的appkey字段值,请务必正确填写。
            appkey: "FFFF0N0000000000975B",
            //使用场景标识。它和应用类型标识(appkey字段)一起决定了无痕验证的业务场景与后端对应使用的策略模型。您可以在阿里云验证码控制台的配置管理页签找到对应的scene值,请务必正确填写。
            scene: "nvc_other",
            // 二次验证获取人机信息串,跟随业务请求一起上传至业务服务器,由业务服务器进行验签。
            success: function (data) {
                console.log('二次验证成功');
                window.console && console.log(data)
            },
            // 前端二次验证失败时触发该回调参数
            fail: function (failCode) {
                window.console && console.log(failCode)
            },
            // 前端二次验证加载异常时触发该回调参数。
            error: function (errorCode) {
                window.console && console.log(errorCode)
            }
        });
        // 绑定事件
        btn.onclick = onclick;
    });

    // 发送业务请求:点击按钮时触发,主动获取人机信息串,并发送给业务服务端
    function onclick() {
        window.nvc.getNVCValAsync(function (nvcVal) {

            //进行ajax校验
            $.ajax({
                url: 'http://test.mt.api.aidianjia.com/api_admin/afs/code/verify',
                type: 'post',
                headers: {
                    Accept: 'application/json',
                },
                data: {
                    data: nvcVal
                },
                success: function (data) {
                    data.status = +data.BizCode; //用+ 转为了数字

                    console.log(data.status);
                    if (data.status === 100 || data.status === 200) {
                        // 无痕验证通过
                        console.log("register success!");

                        nvc_data.value = nvcVal;

                        //todo 这里才开始走原来登录的逻辑,进行表单提交

                    } else if (data.status === 800 || data.status === 900) {
                        // 无痕验证失败,直接拦截
                        // 二次验证失败(eg:密码错误已达三次),提示用户刷新或稍后重试
                        alert("register failed!")
                    } else if (data.status === 400) {
                        // 无痕验证失败,触发二次验证
                        // 二次验证码(滑动验证码)配置项设置,详情请见滑动验证集成方式文档
                        // 二次验证的appkey,scene,test值及success,fail,error的回调由nvc初始化时决定,请不要在二次验证时传入
                        var ncoption = {
                            // 声明滑动验证需要渲染的目标ID。
                            renderTo: "nc", //todo 这个是出现滑动验证的框框
                        }
                        // 唤醒二次验证(滑动验证码)
                        window.nvc.getNC(ncoption);
                    }
                },
                error: function (err) {

                }
            })

        });
    }


</script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值