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 在 认证 中
每月下载 257 次
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(())
}
许可证
依赖关系
~1MB
~20K SLoC