Source tại: https://github.com/ngotruong09/AbpCaptcha.git
Tổng quan
Đây là một thư viện tạo captcha được sử dụng trên framework Abp. Các chức năng chính:
- [x] Tạo captcha
- [x] Verify captcha
Cách sử dụng
Install package từ nuget hoặc clone source here để sử dụng:
1 2 | Install-Package AbpCaptcha -Version <span class="token number">1.0</span>.0 |
Tiếp theo, thêm [DependsOn(typeof(CaptchaModule))]
vào class ABP module trong project của bạn.
Sau đó, sử dụng service ICaptchaEngine
để GetCaptcha/VerifyCaptcha
captcha.
Cách cấu hình
Cấu hình trong file appsettings.json
1 2 3 4 5 6 7 8 9 10 | <span class="token punctuation">{</span> <span class="token string">"Captcha"</span><span class="token builtin class-name">:</span> <span class="token punctuation">{</span> <span class="token string">"FontFamilies"</span><span class="token builtin class-name">:</span> <span class="token punctuation">[</span> <span class="token string">"Arial"</span>, <span class="token string">"Times New Roman"</span> <span class="token punctuation">]</span>, <span class="token string">"Timeout"</span><span class="token builtin class-name">:</span> <span class="token number">300</span>, <span class="token string">"Pattern"</span><span class="token builtin class-name">:</span> <span class="token string">"abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVXYZW23456789"</span>, <span class="token string">"SizeText"</span><span class="token builtin class-name">:</span> <span class="token number">6</span>, <span class="token string">"DrawLines"</span><span class="token builtin class-name">:</span> <span class="token number">4</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> |
Hoặc trong ConfigureServices
:
1 2 3 4 5 6 7 8 9 | Configure<span class="token operator"><</span>CaptchaOptions<span class="token operator">></span><span class="token punctuation">(</span>options <span class="token operator">=</span><span class="token operator">></span> <span class="token punctuation">{</span> options.FontFamilies <span class="token operator">=</span> new string<span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token punctuation">{</span><span class="token string">"Arial"</span>, <span class="token string">"Times New Roman"</span><span class="token punctuation">}</span><span class="token punctuation">;</span> options.Timeout <span class="token operator">=</span> <span class="token number">300</span><span class="token punctuation">;</span> options.Pattern <span class="token operator">=</span> <span class="token string">"abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVXYZW23456789"</span><span class="token punctuation">;</span> options.SizeText <span class="token operator">=</span> <span class="token number">6</span><span class="token punctuation">;</span> options.DrawLines <span class="token operator">=</span> <span class="token number">4</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> |
Ý nghĩa một số tham số cấu hình:
FontFamilies
: font của captcha (hình);Timeout
: thời gian expired của captcha, thời gian chờ người dùng nhập captcha, tính bằng giây;Pattern
: các kí tự có thể có mặt trong captcha;SizeText
: số lượng kí tự trong captcha;DrawLines
: số đường line trong captcha (chủ yếu tạo độ nhiễu)Width
: kích thước chiều rộng của hình captchaHeight
: kích thước chiều dài của hình captcha- …
Ví dụ một số cấu hình:
1 2 3 4 5 6 7 8 9 10 | <span class="token punctuation">{</span> <span class="token string">"Captcha"</span><span class="token builtin class-name">:</span> <span class="token punctuation">{</span> <span class="token string">"FontFamilies"</span><span class="token builtin class-name">:</span> <span class="token punctuation">[</span> <span class="token string">"Arial"</span>, <span class="token string">"Times New Roman"</span> <span class="token punctuation">]</span>, <span class="token string">"Timeout"</span><span class="token builtin class-name">:</span> <span class="token number">300</span>, <span class="token string">"Pattern"</span><span class="token builtin class-name">:</span> <span class="token string">"23456789"</span>, <span class="token string">"SizeText"</span><span class="token builtin class-name">:</span> <span class="token number">4</span>, <span class="token string">"DrawLines"</span><span class="token builtin class-name">:</span> <span class="token number">5</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> |
1 2 3 4 5 6 7 8 9 10 | <span class="token punctuation">{</span> <span class="token string">"Captcha"</span><span class="token builtin class-name">:</span> <span class="token punctuation">{</span> <span class="token string">"FontFamilies"</span><span class="token builtin class-name">:</span> <span class="token punctuation">[</span> <span class="token string">"Arial"</span>, <span class="token string">"Times New Roman"</span> <span class="token punctuation">]</span>, <span class="token string">"Timeout"</span><span class="token builtin class-name">:</span> <span class="token number">300</span>, <span class="token string">"Pattern"</span><span class="token builtin class-name">:</span> <span class="token string">"abcefgh23456789"</span>, <span class="token string">"SizeText"</span><span class="token builtin class-name">:</span> <span class="token number">6</span>, <span class="token string">"DrawLines"</span><span class="token builtin class-name">:</span> <span class="token number">3</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> |