Yuebon.WebApi/Controllers/CaptchaController.cs

(完整代码) 1KB

using Yuebon.Commons.VerificationCode;

namespace Yuebon.WebApi.Controllers;

/// <summary>
/// 验证码接口
/// </summary>
[Route("api/[controller]")]
[ApiController]
[ApiVersion("1.0")]
public class CaptchaController : ApiController
{
    /// <summary>
    /// 获取验证码
    /// </summary>
    /// <returns></returns>
    [HttpGet]
    [AllowAnonymous]
    [NoPermissionRequired]
    public async Task<CommonResult<AuthGetVerifyCodeOutputDto>> CaptchaAsync()
    {
        Captcha captcha = new Captcha();
        var code =await  captcha.GenerateRandomCaptchaAsync();
        var result =await  captcha.GenerateCaptchaImageAsync(code);
        YuebonCacheHelper yuebonCacheHelper = new YuebonCacheHelper();
        TimeSpan expiresSliding = DateTime.Now.AddMinutes(5) - DateTime.Now;
        long vcodeId = IdGeneratorHelper.IdSnowflake();
        yuebonCacheHelper.Add("ValidateCode"+ vcodeId.ToString(), code, expiresSliding,false);
        AuthGetVerifyCodeOutputDto authGetVerifyCodeOutputDto = new AuthGetVerifyCodeOutputDto();
        authGetVerifyCodeOutputDto.Img =Convert.ToBase64String(result.CaptchaMemoryStream.ToArray());
        authGetVerifyCodeOutputDto.Key = vcodeId.ToString();
        CommonResult<AuthGetVerifyCodeOutputDto> commonResult = new CommonResult<AuthGetVerifyCodeOutputDto>();
        commonResult.ErrCode= ErrCode.successCode;
        commonResult.ResData = authGetVerifyCodeOutputDto;
        return commonResult;
    }
}

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。