Crate salvo_captcha
source ·Expand description
§salvo-captcha
A captcha middleware for salvo framework. With fully customizable captchas generator, storage, and finders
§Add to your project
First, add the following to your Cargo.toml
:
[dependencies]
salvo-captcha = "0.3"
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.
Name | Easy | Medium | Hard |
---|---|---|---|
Normal | |||
SlightlyTwisted | |||
VeryTwisted |
§Mirrors
- Github (https://github.com/TheAwiteb/salvo-captcha)
- Codeberg (https://codeberg.org/awiteb/salvo-captcha)
§Main Repository
§License
This project is licensed under the MIT license for more details see LICENSE or http://opensource.org/licenses/MIT.
Structs§
- Cacache
Storage cacache-storage
Thecacache
storage. Store the token and answer in the disk. - The captcha middleware
- The
Captcha
builder - Find the captcha token and answer from the form
- Find the captcha token and answer from the header
- Find the captcha token and answer from the url query
- Captcha storage implementation using an in-memory HashMap.
- Simple
Generator simple-generator
A simple captcha generator, using thecaptcha
crate.
Enums§
- Captcha
Difficulty simple-generator
Supported captcha difficulties - Captcha
Name simple-generator
Supported captcha names - The captcha states of the request
- Simple
Generator Error simple-generator
Error type for theSimpleGenerator
Constants§
- Key used to insert the captcha state into the depot
Traits§
- The captcha extension of the depot. Used to get the captcha info from the depot.
- Trait to find the captcha token and answer from the request.
- Captcha generator, used to generate a new captcha image and answer.
- Trait to store the captcha token and answer. is also clear the expired captcha.