使用.net6+webApi接入阿里云2.0图形验证码

使用.net6+webApi接入阿里云2.0图形验证码

创建一个.NET 6 Web API项目来接入阿里云2.0图形验证码涉及到几个步骤,包括配置阿里云SDK、生成验证码、验证验证码等。以下是一个基本的教程步骤:

1. 安装阿里云SDK

dotnet add package AlibabaCloud.SDK.Captcha20230305 --version 1.1.3

2.配置阿里云账户信息

在你的Web API项目中,创建一个配置文件或在appsettings.json中添加阿里云的AccessKey ID和AccessKey Secret:

{
  "AliyunCaptcha": {
    "AccessKeyId": "你的AccessKeyId",
    "AccessKeySecret": "你的AccessKeySecret"
  },
  // 其他配置...
}

3.创建验证码服务

创建一个服务类来处理与阿里云验证码相关的逻辑。你需要使用阿里云SDK生成验证码和验证用户输入的验证码:

using AlibabaCloud.SDK.Captcha20230305;
using AlibabaCloud.SDK.Captcha20230305.Models;
using AlibabaCloud.TeaUtil;
using AlibabaCloud.TeaUtil.Models;
using Microsoft.Extensions.Configuration;
using Tea;

public class CaptchaService
{
    private readonly Client _client;

    public CaptchaService(IConfiguration configuration)
    {
        var config = new AlibabaCloud.OpenApiClient.Models.Config
        {
            AccessKeyId = configuration["Aliyun:AccessKeyId"],
            AccessKeySecret = configuration["Aliyun:AccessKeySecret"],
            Endpoint = "captcha.cn-shanghai.aliyuncs.com"
        };
        _client = new Client(config);
    }

    public async Task<VerifyIntelligentCaptchaResponse> VerifyIntelligentCaptcha(string captchaVerifyParam)
    {
        var verifyIntelligentCaptchaRequest = new VerifyIntelligentCaptchaRequest
        {
            CaptchaVerifyParam = captchaVerifyParam
        };
        var runtime = new RuntimeOptions();
        try
        {
            return await _client.VerifyIntelligentCaptchaWithOptionsAsync(verifyIntelligentCaptchaRequest, runtime);
        }
        catch (TeaException error)
        {
            if (!Common.Empty(error.Code) && !Common.Empty(error.Message))
            {
                // 错误 SDK 的错误码
                // 错误 SDK 的错误信息
                // 错误 SDK 的请求 ID
                // error.Data 中获取更多错误信息
                throw;
            }
            throw;
        }
        catch (Exception _error)
        {
            var error = new TeaException(new Dictionary<string, object>
            {
                { "message", _error.Message }
            });
            throw;
        }
    }
}

4. 创建API控制器

using App.WebAPI.Utilty.ApiResult;
using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("[controller]/[Action]")]
public class CaptchaController : ControllerBase
{
    private readonly CaptchaService _captchaService;

    public CaptchaController(CaptchaService captchaService)
    {
        _captchaService = captchaService;
    }

    [HttpPost]
    public async Task<ApiResult> VerifyCaptcha([FromBody] CaptchaVerifyModel model)
    {
        try
        {
            var response = await _captchaService.VerifyIntelligentCaptcha(model.CaptchaVerifyParam);
            Console.WriteLine(response.Body.Result.VerifyCode);
            if (response.Body.Result.VerifyResult == true)
            {
                return ApiResultHelper.Success("验证成功", true);
            }
            else
            {
                return ApiResultHelper.Error(response.Body.Result.VerifyCode);
            }
        }
        catch (Exception ex)
        {
            return ApiResultHelper.Error("服务器异常");
        }
    }
}

public class CaptchaVerifyModel
{
    public string CaptchaVerifyParam { get; set; }
}

注意,ApiResult根据你实际的返回数据来定义

5.添加依赖注入

最后在你项目Program中配置依赖注入

builder.Services.AddTransient<CaptchaService>();

6.测试API
使用Postman或任何API测试工具来测试你的API。首先获取验证码,然后使用验证码进行验证。

阿里云验证码服务地址:https://next.api.aliyun.com/api-tools/sdk/captcha?version=2023-03-05&language=csharp-tea&tab=primer-doc

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伪装_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值