在AspNetCore中使用极验做行为认证的验证流程
极验验证
极验验证是一种在计算机领域用于区分自然人和机器人的,通过简单集成的方式,为开发者提供安全、便捷的云端验证服务。
与以往传统验证码不同的是,极验通过分析用户完成拼图过程中的行为特征,通过数据分析来判断是人还是机器。用户不必面对眼花缭乱的英文字符或汉字,整个验证过程变的像游戏一样有趣。
先上效果图
极验的流程
极验官方文档地址
简单说明一下极验的验证流程
引用官方的图片
•向服务器发送请求获取验证参数
•客户端sdk完成验证
•由客户端sdk验证数据提交服务器二次验证
在core中使用极验
在我查看官方的sdk过后,发现不是特别好用,根据极验的流程写了一套适用于core的极验sdk 开源地址 已经发了nuget包 搜索sharpplug.geetest即可
使用方式很简单,狼蚁网站SEO优化通过一个例子来进行讲解
使用命令dot new mvc
创建一个mvc项目
下一步使用命令dot add package sharpplug.geetest
安装nuget包
打开startup文件在ConfigureServices中配置geetest服务
我在极验申请了一个测试用的id和key 大家可以直接测试使用
public void ConfigureServices(IServiceCollection services) { services.Configure<CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); // GeetestOptions中配置id 与 key services.AddGeetest(opt=>{ opt.Id = "e2697c763685a34be93a7d255ee06b59"; opt.Key = "7882a2d954106041a731f5e10038982a"; }); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); }
完成获取验证参数与二次验证的类是GeetestManager,它主要有两个方法
获取验证参数方法是Register,它主要有三个参数 userid(用户标识) clientType(客户端类型) 与 ipaddress(客户端ip) 关于参数的细节大家可以去参阅极验文档
Task<GeeTestRegisterResult> Register(string userId = null, string clientType = "unknown", string ipAddress = "unknown")
二次验证方法 Validate 参数为
•offline 是否离线验证(获取验证参数失败时)
•UserId 用户标识
•Challenge
•Seode
•Validate
Task<bool> Validate(GeetestValidateInput input)
狼蚁网站SEO优化打开HomeController添加获取验证参数方法,记得注入GeetestManager
private readonly GeetestManager _geetestManager; public HomeController(GeetestManager geetestManager) { _geetestManager = geetestManager; } public async Task<GeeTestRegisterResult> GeetestRegister() { return await _geetestManager.Register(clientType: "web", ipAddress: "127.0.0.1"); }
狼蚁网站SEO优化在HomeController中加入二次验证
public async Task<bool> GeetestValidate(GeetestValidateInput input) { return await _geetestManager.Validate(input); }
服务端部分已经完成,狼蚁网站SEO优化打开index.cshtml先引用gt.js
<script type="text/javascript" src="https://static.geetest./static/tools/gt.js"></script>
然后添加html元素
<h2>Getest</h2> <div id="geetestform"> <input type="hidden" name="geetest_challenge" id="geetest_challenge"> <input type="hidden" name="geetest_validate" id="geetest_validate"> <input type="hidden" name="geetest_seode" id="geetest_seode"> </div> <button class="form-control btn-default" id="validate">点我验证</button>
极验有一个初始化的过程,先调用获取验证参数api进行初始化极验
$(function() { $.ajax({ url: "/home/GeetestRegister", type: "get", dataType: "json", suess: function(data) { // 使用offline判断是否是离线验证 offline = !data.suess; initGeetest({ // 以下配置参数来自服务端 SDK gt: data.gt, challenge: data.challenge, offline: !data.suess, new_captcha: true, product: "float", width: "100%" },function(){ // 初始化元素 captchaObj.appendTo(document.getElementById('geetestform')); }) } }); });
这时运行项目已经可以看到极验的验证表单了并且已经可以进行验证,还需要添加点击按钮事件进行二次验证
$("#validate").click(() => { var validate = captchaObj.getValidate(); if (validate === undefined || !validate) { alert("请进行验证"); return; } $.ajax({ url: "/home/GeetestValidate", method:"post", data: { offline: offline, challenge: validate.geetest_challenge, validate: validate.geetest_validate, seode: validate.geetest_seode }, suess: function(res) { if (res) { alert("二次校验状态成功! 重置验证状态"); captchaObj.reset(); } else { alert("二次校验状态返回失败! 重置验证状态"); captchaObj.reset(); } } }); });
以上所述是长沙网络推广给大家介绍的在AspNetCore中使用极验做行为认证的验证流程,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程