.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

浙公网安备 33010602011771号