#oauth #authorization #oauth2 #rust

rusty_oauth

A lightweight, secure OAuth 2.0 library for Rust, providing streamlined authentication flows for applications and services. Includes support for authorization codes, client credentials, and token management, with focus on security and ease of integration.

9 releases

0.1.39 Dec 6, 2024
0.1.38 Dec 6, 2024
0.1.36 Nov 29, 2024
0.1.23 Oct 30, 2024

#161 in Authentication

Download history 235/week @ 2024-10-21 825/week @ 2024-10-28 407/week @ 2024-11-04 503/week @ 2024-11-11 38/week @ 2024-11-18 611/week @ 2024-11-25 476/week @ 2024-12-02 61/week @ 2024-12-09

1,207 downloads per month
Used in rusty-render

MIT license

315KB
1K SLoC

Rusty-Oauth

License Crates.io

rusty-oauth is a simple, lightweight, and efficient Rust crate that facilitates OAuth 2.0 authentication with popular service providers such as Google, GitHub, soon Facebook, and more. This crate provides an easy-to-use interface to handle the OAuth authorization flow, manage tokens, and interact with user data through RESTful APIs. Designed to be minimal yet powerful, OAuth-Rust helps developers integrate secure authentication into their Rust application

Table of Contents

Features

  • Gain Control over the authorization.
  • Build for developer seeking for low level oauth.
  • Built in Tls config : So no need to worry about breach of security.
  • HTTP/2 & HTTP/3 Support: Extending the potential of oauth control over the properties.
  • Asynchronous | Syncronous : Non-blocking parsing for better performance.

Installation

To include this crate in your project, add the following line to your Cargo.toml:

[dependencies]
rusty_oauth = "0.1.35"
important keys
GOOGLE_ID= ""
GOOGLE_SECRET=""

GITHUB_ID=""
GITHUB_SECRET=""

RUSTY_SECRET=""
    Oauth::new()
            .id("")
            .secret("")
            .scope("email profile")
            .login("/login")
            .redirect("/")
            .provider(rusty_oauth::Provider::GOOGLE) or // rusty_oauth::Provider::GOOGLE
            .stream(&stream)
            .response(&response)
            .build()
            .unwrap();
    let credential = CREDENTIALS.lock().unwrap(); // contains

Acknowledgements

This project was created and maintained by Me, To give the ability to developer to gain control over oauth

Special thanks to all contributors and the open-source community for their invaluable support, feedback, and contributions. Together, we continue to push the boundaries of what's possible

Dependencies

~2–13MB
~185K SLoC