.net core API获取验证码前引入阿里云无痕验证

.net core API获取验证码前引用阿里云无痕验证

1、前端代码实例

代码都写了备注,你们就自己看看吧

    <button type="button" class="layui-btn layui-btn-color border-radius" onclick="sendCode()" id="btnSendCode">获取验证码</button>


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

// 发送业务请求:点击按钮时触发,主动获取人机信息串,并发送给业务服务端
function sendCode() {
    if (!isMobile($("#Mobile").val())) {
        showError('获取验证码失败', '请输入正确的手机号');
        return false;
    }
    window.nvc.getNVCValAsync(function (nvcVal) {
        // 获取人机信息串
        // 将以下getNVCVal()函数的值,跟随业务请求一起上传,由后端请求AnalyzeNvc接口并返回200,400,600或者800。
        verificationData(nvcVal);
    });
}

//这里的代码目的是调用后端获取验证码接口,我这里对ajax进行封装,你们可以用ajax来进行调用后端接口
function verificationData(data) {
    let that = this;
    doPostJson('/api/sendCode', { mobile: $("#Mobile").val(), RequestType: 'updatePwd', Data: data }, function (result, textStatus) {
        if (result.Success) {
            //这里是调用成功就结束了,我这里成功后调用其它方法,你们可根据自己需求来
            that.codeDown(countNum);
        }
        else {
            showError("获取验证码失败", result.Msg, result.Msg.substring(0, 5) == '验证不通过' ? function () {
                    location.reload();
                
            } : '')
            return;
        }
    });
}

2、后端无痕验证方法实例

获取验证码对Nontrace方法进行验证,验证成功才发送验证码,data参数由前端传的Data值,返回200代表验证成功
SiteConfigByDb.Regionid是阿里云提供的Regionid
SiteConfigByDb.AccessKeyId是阿里云提供的AccessKeyId
SiteConfigByDb.AccessKeySecret是阿里云提供的AccessKeySecret

        /// <summary>
        /// 无痕验证方法
        /// </summary>
        /// <param name="data">data由前端传的Data值</param>
        /// <returns></returns>
        public string Nontrace(string data)
        {
            #region 无痕验证
            IClientProfile profile = DefaultProfile.GetProfile(SiteConfigByDb.Regionid, SiteConfigByDb.AccessKeyId, SiteConfigByDb.AccessKeySecret);
            IAcsClient client = new DefaultAcsClient(profile);
            DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", "afs", "afs.aliyuncs.com");

            AnalyzeNvcRequest analyze = new AnalyzeNvcRequest();
            //必填参数,由前端获取getNVCVal方法获得的值。
            //通过setScoreJsonStr方法声明"服务端调用阿里云验证码接口得到的返回结果"与"前端执行操作"间的映射关系,并通知验证码服务端进行二次验证授权。
            //注意:前端页面必须严格按照该映射关系执行相应操作,否则将导致调用异常。
            //例如,在setScoreJsonStr方法中声明"400":"NC",则当服务端返回400时,您的前端必须唤醒滑动验证(SC),如果唤醒其他验证,则将导致失败。
            analyze.Data = data;
            //("{\"200\":\"PASS\",\"400\":\"NC\",\"800\":\"BLOCK\"}");//根据业务需求设置各返回结果对应的客户端处置方式。
            analyze.ScoreJsonStr = "{\"200\":\"PASS\",\"400\":\"NC\",\"800\":\"BLOCK\"}";
            AnalyzeNvcResponse response = client.GetAcsResponse(analyze);
            return response.BizCode;
            #endregion
        }

3、官方网址教程

https://help.aliyun.com/document_detail/122773.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值