nefarious-login/README.md
kjuulh 393be43db1
All checks were successful
ci/woodpecker/push/test Pipeline was successful
feat: dummy change
Signed-off-by: kjuulh <contact@kjuulh.io>
2023-11-01 21:26:35 +01:00

2.3 KiB

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

License

MIT License.

For more details, see LICENSE.

Contributions

PRs welcome. For major changes, open an issue first.