kjuulh
66080374b0
Some checks are pending
ci/woodpecker/pr/test Pipeline is pending
Signed-off-by: kjuulh <contact@kjuulh.io> |
||
---|---|---|
.woodpecker | ||
crates/nefarious-login | ||
examples | ||
scripts | ||
templates | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
cuddle.yaml | ||
LICENSE | ||
README.md | ||
renovate.json |
Nefarious Login
Overview
Nefarious Login
is a plug-and-play authentication module designed for
effortless integration into business applications. Part of a larger suite of
Nefarious tools, it aims to remove the hassle from implementing logins by using
various authentication engines like Zitadel.
Quick Start
Install the crate via Cargo:
cargo install nefarious-login
Code Sample
Integrate Nefarious Login
into your application. The core setup is about
configuring the AuthService
as shown below:
#[derive(Debug, Clone, Parser)]
struct Command {
#[clap(flatten)]
auth: AuthClap,
}
async fn main() -> anyhow::Result<()> {
let cmd = Command::parse_from(vec![
"base",
"--auth-engine=zitadel", // Can also use a yaml file, or env variables, see app --help for more info
"--zitadel-authority-url=https://personal-wxuujs.zitadel.cloud",
"--zitadel-redirect-url=http://localhost:3001/auth/authorized",
"--zitadel-client-id=<your-client-id>",
"--zitadel-client-secret=<your-secret>",
"--session-backend=postgresql",
"--session-postgres-conn=postgres://como:somenotverysecurepassword@localhost:5432/nefarious-test",
]);
let auth_service = AuthService::new(&cmd.auth).await?;
// .. Use in axum, raw apis etc. See examples for details
}
Complete code in the main function will be similar to the snippet you provided.
Configuring with CLI
Use these CLI options to set up your authentication:
app
--auth-engine=zitadel
--zitadel-authority-url=https://example.zitadel.cloud
--zitadel-redirect-url=http://localhost:3001/auth/authorized
--zitadel-client-id=your-client-id
--zitadel-client-secret=your-client-secret
--session-backend=postgresql
--session-postgres-conn=postgres://username:password@localhost:5432/dbname
Examples
All examples feature axum integration
- Basic Setup: Check out examples/basic for a minimal implementation.
- Using with Clap: For integrating with Clap, see examples/clap.
License
MIT License.
For more details, see LICENSE.
Links
- Crate: nefarious-login on crates.io
Contributions
PRs welcome. For major changes, open an issue first.