kjuulh d4a162876a
Some checks are pending
ci/woodpecker/pr/test Pipeline is pending
feat: with noop
Signed-off-by: kjuulh <contact@kjuulh.io>
2023-11-12 22:44:02 +01:00
2023-11-01 21:01:13 +01:00
2023-11-12 22:44:02 +01:00
2023-11-12 22:44:02 +01:00
2023-10-22 16:55:48 +02:00
2023-11-12 22:44:02 +01:00
2023-11-12 22:44:02 +01:00
2023-10-22 16:55:48 +02:00
2023-10-22 22:57:10 +02:00
2023-11-01 21:26:35 +01:00
2023-10-22 17:00:49 +00:00

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.

Description
No description provided
Readme 212 KiB
Languages
Rust 98.9%
Shell 1.1%