包信息
| 属性 | 值 |
|---|---|
| NuGet 包 | Bitzsoft.Integrations.Captcha.Aliyun |
| Provider ID | aliyun |
| 鉴权 | AccessKeyId + AccessKeySecret(API 签名) |
| 版本 | 验证码 2.0 |
配置字段(AliyunOptions)
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
AccessKeyId | string | 是 | — | 阿里云 AccessKey ID |
AccessKeySecret | string | 是 | — | 阿里云 AccessKey Secret |
SceneId | string | 是 | — | 验证码场景 ID |
AppKey | string | 否 | — | 验证码应用 AppKey(前端 SDK 初始化) |
Region | string | 否 | cn-hangzhou | 地域 |
Endpoint | string | 否 | captcha.cn-hangzhou.aliyuncs.com | 验证码服务端点 |
ScriptUrl | string | 否 | 阿里 CDN | 前端 SDK 脚本地址 |
Timeout | TimeSpan | 否 | 30s | HTTP 请求超时 |
HttpClientName | string | 否 | AliyunCaptchaProvider | 命名 HttpClient |
配置示例
{ "Captcha": { "Aliyun": { "AccessKeyId": "LTAIxxxxxxxx", "AccessKeySecret": "your-secret-key", "SceneId": "your-scene-id", "AppKey": "your-app-key" } }}DI 注册
builder.Services.AddBitzsoftAliyunCaptcha(builder.Configuration.GetSection("Captcha:Aliyun"));使用示例
public class CaptchaService(ICaptchaProvider captcha){ public async Task<CaptchaResult<CaptchaChallenge>> GenerateAsync() { return await captcha.GenerateAsync(new CaptchaGenerateRequest()); }
public async Task<CaptchaResult<CaptchaVerification>> VerifyAsync(string verifyResult) { return await captcha.VerifyAsync(new CaptchaVerifyRequest { VerifyResult = verifyResult }); }}已知限制
SceneId和AppKey在阿里云验证码控制台创建场景后获得。AccessKeySecret用于请求签名,日志中脱敏输出。
相关
- 验证码域手册(如有)