oauth2_utils/
lib.rs

1//! This crate provides utility functions for working with OAuth2:
2//!
3//! - PKCE
4//! - URL-safe tokens
5//! - URL-safe base64 encoding/decoding
6//!
7//! ## Installation
8//!
9//! ```shell
10//! cargo add oauth2_utils
11//! ```
12//!
13//! ## Usage
14//!
15//! To generate a PKCE pair with the corresponding method (SHA256 by default):
16//!
17//! ```rust
18//! use oauth2_utils::pkce::PKCE;
19//!
20//! let pkce = PKCE::new();
21//!
22//! println!("PKCE Code Challenge: {}", pkce.code_challenge);
23//! println!("PKCE Code Verifier: {}", pkce.code_verifier);
24//! println!("PKCE Code method: {}", pkce.method);
25//! ```
26//! To generate a code verifier with a custom length:
27//!
28//! ```rust
29//! use oauth2_utils::errors::CodeVerifierError;
30//!
31//! use oauth2_utils::pkce::gen::{gen_code_challenge, gen_code_verifier};
32//!
33//!
34//! pub fn main() -> Result<(), CodeVerifierError> {
35//! let code_verifier = gen_code_verifier(Some(128))?;
36//! eprintln!("Code Verifier: {}", code_verifier);
37//! let code_challenge = gen_code_challenge(&code_verifier);
38//! eprintln!("Code Challenge: {}", code_challenge);
39//! Ok(())
40//! }
41//! ```
42//! To generate a URL-safe token for Nonce, State, etc..
43//!
44//! ```rust
45//! use oauth2_utils::urlsafe::urlsafe_token;
46//!
47//! println!("URL-safe Token: {}", urlsafe_token(32))
48//! ```
49//!
50//! For base64 encoding/decoding operations:
51//! ```rust
52//!
53//! use oauth2_utils::errors::B64Error;
54//! use oauth2_utils::urlsafe::b64::{urlsafe_b64decode, urlsafe_b64encode};
55//!
56//! pub fn main() -> Result<(), B64Error> {
57//! let val = String::from("some value");
58//! let encoded = urlsafe_b64encode(val);
59//! println!("{}", encoded);
60//! let decoded = urlsafe_b64decode(encoded)?;
61//! println!("{}", decoded);
62//! Ok(())
63//! }
64//!```
65//!
66pub mod consts;
67pub mod errors;
68pub mod pkce;
69pub mod urlsafe;