Signed-off-by: Awiteb <a@4rs.nl>
This commit is contained in:
parent
29b4b80071
commit
a294ebfe96
1 changed files with 37 additions and 17 deletions
52
README.md
52
README.md
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
# salvo-captcha
|
# salvo-captcha
|
||||||
|
|
||||||
A captcha middleware for [salvo](salvo.rs) framework. It uses [`captcha`](https://github.com/daniel-e/captcha) crate to generate captcha images.
|
A captcha middleware for [salvo](salvo.rs) framework. With fully customizable captchas generator, storage, and finders
|
||||||
|
|
||||||
[![salvo-captcha-video](https://i.suar.me/9NjJ1)](https://ibb.co/XVRVMZj)
|
[![salvo-captcha-video](https://i.suar.me/9NjJ1)](https://ibb.co/XVRVMZj)
|
||||||
|
|
||||||
|
@ -14,10 +14,10 @@ First, add the following to your `Cargo.toml`:
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[dependencies]
|
[dependencies]
|
||||||
salvo-captcha = "0.1"
|
salvo-captcha = "0.2"
|
||||||
```
|
```
|
||||||
|
|
||||||
Or use [cargo-add](https://doc.rust-lang.org/cargo/commands/cargo-add.html) to add the dependency to your `Cargo.toml`:
|
Or use [`cargo add`] to add the dependency to your `Cargo.toml`:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ cargo add salvo-captcha
|
$ cargo add salvo-captcha
|
||||||
|
@ -25,39 +25,59 @@ $ cargo add salvo-captcha
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
See the [examples](examples) directory for a complete example.
|
See the [examples] directory for a complete example. You can also see the implemented generators, storages, and finders in the source code.
|
||||||
|
|
||||||
## Storage
|
## Storage
|
||||||
|
|
||||||
The storage of the captcha is handled by a [`CaptchaStore`] trait. You can implement your own storage or use the [`cacache-rs`] by enabling the `cacache-storage` feature.
|
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.
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[dependencies]
|
[dependencies]
|
||||||
salvo-captcha = { version = "0.1", features = ["cacache-storage"] }
|
salvo-captcha = { version = "0.2", features = ["cacache-storage"] }
|
||||||
```
|
```
|
||||||
|
|
||||||
## Captcha name and difficulty
|
## 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 implement your own captcha 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.
|
In this table, you can see the difference between the difficulties and the name of the captcha.
|
||||||
|
|
||||||
| Name | Easy | Medium | Hard |
|
| Name | Easy | Medium | Hard |
|
||||||
| :----: | :----------------------------------: | :----------------------------------: | :----------------------------------: |
|
| :-------------: | :----------------------------------: | :----------------------------------: | :----------------------------------: |
|
||||||
| Amelia | ![Simple](https://i.suar.me/1JaxG/s) | ![Simple](https://i.suar.me/l7zBl/s) | ![Simple](https://i.suar.me/qXAlx/s) |
|
| Normal | ![Simple](https://i.suar.me/edwBG/s) | ![Simple](https://i.suar.me/NJmg0/s) | ![Simple](https://i.suar.me/OJK7M/s) |
|
||||||
| Lucy | ![Simple](https://i.suar.me/edwBG/s) | ![Simple](https://i.suar.me/NJmg0/s) | ![Simple](https://i.suar.me/OJK7M/s) |
|
| SlightlyTwisted | ![Simple](https://i.suar.me/1JaxG/s) | ![Simple](https://i.suar.me/l7zBl/s) | ![Simple](https://i.suar.me/qXAlx/s) |
|
||||||
| Mila | ![Simple](https://i.suar.me/dO78z/s) | ![Simple](https://i.suar.me/PXBwK/s) | ![Simple](https://i.suar.me/8edgE/s) |
|
| VeryTwisted | ![Simple](https://i.suar.me/dO78z/s) | ![Simple](https://i.suar.me/PXBwK/s) | ![Simple](https://i.suar.me/8edgE/s) |
|
||||||
|
|
||||||
## Mirrors
|
## Mirrors
|
||||||
|
|
||||||
- Github (https://github.com/TheAwiteb/salvo-captcha)
|
- Github (<https://github.com/TheAwiteb/salvo-captcha>)
|
||||||
- Codeberg (https://codeberg.org/awiteb/salvo-captcha)
|
- Codeberg (<https://codeberg.org/awiteb/salvo-captcha>)
|
||||||
|
|
||||||
### Main Repository
|
### Main Repository
|
||||||
|
|
||||||
- My Git (https://git.4rs.nl/awiteb/salvo-captcha)
|
- My Git (<https://git.4rs.nl/awiteb/salvo-captcha>)
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
This project is licensed under the MIT license for more details see [LICENSE](LICENSE) or http://opensource.org/licenses/MIT.
|
This project is licensed under the MIT license for more details see [LICENSE] or <http://opensource.org/licenses/MIT>.
|
||||||
|
|
||||||
[`CaptchaStore`]: https://docs.rs/salvo_captcha/0.1.0/salvo_captcha/trait.CaptchaStore.html
|
[`MemoryStorage`]: https://docs.rs/salvo-captcha/latest/salvo_captcha/struct.MemoryStorage.html
|
||||||
|
[`CaptchaStorage`]: https://docs.rs/salvo-captcha/latest/salvo_captcha/trait.CaptchaStorage.html
|
||||||
[`cacache-rs`]: https://github.com/zkat/cacache-rs
|
[`cacache-rs`]: https://github.com/zkat/cacache-rs
|
||||||
|
[`SimpleCaptchaGenerator`]: https://docs.rs/salvo-captcha/latest/salvo_captcha/struct.SimpleCaptchaGenerator.html
|
||||||
|
[`CaptchaGenerator`]: https://docs.rs/salvo-captcha/latest/salvo_captcha/trait.CaptchaGenerator.html
|
||||||
|
[`CaptchaFinder`]: https://docs.rs/salvo-captcha/latest/salvo_captcha/trait.CaptchaFinder.html
|
||||||
|
[examples]: https://git.4rs.nl/awiteb/salvo-captcha/src/branch/master/examples
|
||||||
|
[`captcha`]: https://github.com/daniel-e/captcha
|
||||||
|
[LICENSE]: https://git.4rs.nl/awiteb/salvo-captcha/src/branch/master/LICENSE
|
||||||
|
[`cargo add`]: https://doc.rust-lang.org/cargo/commands/cargo-add.html
|
Loading…
Reference in a new issue