在AspNetCore中如何使用极验做行为认证
创始人
2024-11-27 17:23:54
0次

先上效果图

在AspNetCore中如何使用极验做行为认证

极验的流程

极验官方文档地址 https://docs.geetest.com/install/deploy/server/csharp

简单说明一下极验的验证流程

引用官方的图片

在AspNetCore中如何使用极验做行为认证

•向服务器发送请求获取验证参数
•客户端sdk完成验证
•由客户端sdk验证数据提交服务器二次验证

在netcore中使用极验

在我查看官方的sdk过后,发现不是特别好用,根据极验的流程写了一套适用于netcore的极验sdk 开源地址 已经发了nuget包 搜索sharpplug.geetest即可

使用方式很简单,下面通过一个例子来进行讲解

使用命令dotnet new mvc创建一个mvc项目

下一步使用命令dotnet add package sharpplug.geetest安装nuget包

打开startup文件在ConfigureServices中配置geetest服务

 我在极验申请了一个测试用的id和key 大家可以直接测试使用

public void ConfigureServices(IServiceCollection services)
{
  services.Configure(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 Register(string userId = null, string clientType = "unknown", string ipAddress = "unknown")

二次验证方法 Validate 参数为

•offline 是否离线验证(获取验证参数失败时)
•UserId 用户标识
•Challenge
•Seccode
•Validate

Task Validate(GeetestValidateInput input)

下面打开HomeController添加获取验证参数方法,记得注入GeetestManager

private readonly GeetestManager _geetestManager;
public HomeController(GeetestManager geetestManager)
{
  _geetestManager = geetestManager;
}
public async Task GeetestRegister()
{
  return await _geetestManager.Register(clientType: "web", ipAddress: "127.0.0.1");
}

下面在HomeController中加入二次验证

public async Task GeetestValidate(GeetestValidateInput input)
{
  return await _geetestManager.Validate(input);
}

服务端部分已经完成,下面打开index.cshtml先引用gt.js

然后添加html元素

Getest

        
点我验证

极验有一个初始化的过程,先调用获取验证参数api进行初始化极验

$(function() {
  $.ajax({
    url: "/home/GeetestRegister",
    type: "get",
    dataType: "json",
    success: function(data) {
      // 使用offline判断是否是离线验证
      offline = !data.success;
      initGeetest({
        // 以下配置参数来自服务端 SDK
        gt: data.gt,
        challenge: data.challenge,
        offline: !data.success,
        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,
      seccode: validate.geetest_seccode
    },
    success: function(res) {
      if (res) {
        alert("二次校验状态成功! 重置验证状态");
        captchaObj.reset();
      } else {
        alert("二次校验状态返回失败! 重置验证状态");
        captchaObj.reset();
      }
    }
  });
});

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...