#oauth2 #url-safe #codec #tokens #generate #base64 #pkce

oauth2_utils

提供用于OAuth2操作的实用函数的crate

5个版本 (稳定)

2.0.0 2024年4月9日
1.0.2 2023年12月24日
1.0.1 2023年12月18日
0.0.1 2023年12月18日

506认证

Download history 7/week @ 2024-05-21 4/week @ 2024-07-09

每月下载 257

MIT 许可证

19KB
226

概述

本crate提供用于OAuth2操作的实用函数

  • PKCE
  • URL安全的令牌
  • URL安全的base64编码/解码

安装

cargo add oauth2_utils

使用方法

生成带有对应方法(默认为SHA256)的PKCE对

use oauth2_utils::pkce::PKCE;

let pkce = PKCE::new();

println!("PKCE Code Challenge: {}", pkce.code_challenge);
println!("PKCE Code Verifier: {}", pkce.code_verifier);
println!("PKCE Code method: {}", pkce.method);

使用自定义长度生成代码验证器

use oauth2_utils::errors::CodeVerifierError;

use oauth2_utils::pkce::gen::{gen_code_challenge, gen_code_verifier};

  
pub fn main() -> Result<(), CodeVerifierError> {
    let code_verifier = gen_code_verifier(Some(128))?;
    eprintln!("Code Verifier: {}", code_verifier);
    let code_challenge = gen_code_challenge(&code_verifier);
    eprintln!("Code Challenge: {}", code_challenge);
    Ok(())
}

生成用于Nonce、State等的URL安全令牌

use oauth2_utils::urlsafe::urlsafe_token;

println!("URL-safe Token: {}", urlsafe_token(32))

对于base64编码/解码操作


use oauth2_utils::errors::B64Error;
use oauth2_utils::urlsafe::b64::{urlsafe_b64decode, urlsafe_b64encode};

pub fn main() -> Result<(), B64Error> {
    let val = String::from("some value");
    let encoded = urlsafe_b64encode(val);
    println!("{}", encoded);
    let decoded = urlsafe_b64decode(encoded)?;
    println!("{}", decoded);
    Ok(())
}

许可证

GPL

依赖关系

~1MB
~20K SLoC