authfix 0.1.1

A simple and extensible authentication layer for Actix Web, designed for fast integration and easy configuration.
Documentation
[package]
name = "authfix"
description = "A simple and extensible authentication layer for Actix Web, designed for fast integration and easy configuration."
authors = ["Stefan Simon <stefan.j.c.simon@gmail.com>"]
homepage = "https://github.com/Hypnagokali/authfix"
repository = "https://github.com/Hypnagokali/authfix"
keywords = ["authentication", "web", "middleware", "actix-web", "session"]
categories = ["authentication", "web-programming"]
exclude = [".gitignore", ".github/", "tests/", "target/", "test-out/", "test-utils/", "CODE_OF_CONDUCT.md", "CONTRIBUTING.md"]
license = "MIT OR Apache-2.0"
readme = "README.md"
version = "0.1.1"
edition = "2021"

[workspace]
members = [".", "test-utils"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[features]
authenticator = ["dep:google-authenticator", "dep:qrcode-generator", "dep:rand", "dep:base32"]
mfa_send_code = []

[dependencies]
actix-web="4.11"
log = "0.4"
serde = { version = "1.0", features = ["derive"]}
actix-session = { version = "0.10", features = ["cookie-session"] }
futures = "0.3"
regex = "1.11"
urlencoding = "2.1"
thiserror = "2.0"
# used for public api like the trait `LoadUserService`
async-trait = "0.1"

# feature: authenticator
google-authenticator = { version = "0.4", optional = true }
qrcode-generator = { version = "5.0", optional = true }
rand = { version = "0.9", optional = true }
base32 = { version = "0.5", optional = true }

[dev-dependencies]
reqwest = { version = "0.12", features = ["cookies"]}
actix-session = { version = "0.10", features = ["cookie-session"]}
actix-rt = "2.10.0"
actix-test = "0.1.5"
resvg = "0.45"
rqrr = "0.10"
image = "0.25"
chrono = "0.4"
env_logger = "0.11"
lazy_static = "1.5"
authfix = { path = ".", features = ["authenticator", "mfa_send_code"] } 
authfix-test-utils = { path = "./test-utils" }