Crate salvo_captcha

Crate salvo_captcha 

Source
Expand description

§salvo-captcha

A captcha middleware for salvo framework. With fully customizable captchas generator, storage, and finders

salvo-captcha-video

§Add to your project

First, add the following to your Cargo.toml:

[dependencies]
salvo-captcha = "0.4"

Or use cargo add to add the dependency to your Cargo.toml:

$ cargo add salvo-captcha

§Usage

See the examples directory for a complete example. You can also see the implemented generators, storages, and finders in the source code.

§Storage

There is a default storage, which is MemoryStorage it’s a simple in-memory storage. You can implement your own storage by implementing the CaptchaStorage trait.

§Cacache Storage

A high-performance, concurrent, content-addressable disk cache. The storage is based on cacache-rs crate. to use it, you need to enable the cacache-storage feature.

[dependencies]
salvo-captcha = { version = "0.3", features = ["cacache-storage"] }

§Captcha Finder

We provide fully customizable query parameters, form fields, and headers to find the captcha token and the captcha answer. You can implement your own finder by implementing the CaptchaFinder trait.

§Captcha Generator

We provide SimpleCaptchaGenerator which is a simple captcha generator based on the captcha crate, you can enable it by enabling the simple-generator feature.

[dependencies]
salvo-captcha = { version = "0.3", features = ["simple-generator"] }

You can implement your own generator by implementing the CaptchaGenerator trait.

§Captcha name and difficulty

In this table, you can see the difference between the difficulties and the name of the captcha.

NameEasyMediumHard
NormalSimpleSimpleSimple
SlightlyTwistedSimpleSimpleSimple
VeryTwistedSimpleSimpleSimple

§Mirrors

§Main Repository

§License

This project is licensed under the MIT license for more details see LICENSE or http://opensource.org/licenses/MIT.

Structs§

CacacheStoragecacache-storage
The cacache storage. Store the token and answer in the disk.
Captcha
The captcha middleware
CaptchaBuilder
The Captcha builder
CaptchaFormFinder
Find the captcha token and answer from the form
CaptchaHeaderFinder
Find the captcha token and answer from the header
CaptchaQueryFinder
Find the captcha token and answer from the url query
MemoryStorage
Captcha storage implementation using an in-memory HashMap.
SimpleGeneratorsimple-generator
A simple captcha generator, using the captcha crate.

Enums§

CaptchaDifficultysimple-generator
Supported captcha difficulties
CaptchaNamesimple-generator
Supported captcha names
CaptchaState
The captcha states of the request
SimpleGeneratorErrorsimple-generator
Error type for the SimpleGenerator

Constants§

CAPTCHA_STATE_KEY
Key used to insert the captcha state into the depot

Traits§

CaptchaDepotExt
The captcha extension of the depot. Used to get the captcha info from the depot.
CaptchaFinder
Trait to find the captcha token and answer from the request.
CaptchaGenerator
Captcha generator, used to generate a new captcha image and answer.
CaptchaStorage
Trait to store the captcha token and answer. is also clear the expired captcha.