6 个版本

0.2.0 2023 年 9 月 5 日
0.1.4 2023 年 2 月 17 日
0.1.1 2023 年 1 月 27 日

#8 in #cas

自定义许可协议

38KB
542 行代码(不含注释)

ustc_cas

crates.io documentation

一个用于 USTC CAS 系统日志的 Rust 库。


lib.rs:

一个简单的 USTC CAS 系统日志库。

用法

您只需调用 get_ticket。函数参数 service_url 可以在手动登录 CAS 时从浏览器的地址栏中找到。返回的票据值可用于网站的进一步认证。

ustc_cas::get_ticket 是一个异步函数,需要异步运行时来执行。而通过 blocking 特性启用的 ustc_cas::blocking::get_ticket 不能在异步运行时中使用。它在返回之前会阻塞当前线程。

示例

use tokio::runtime::Builder;

 let runtime = Builder::new_current_thread()
    .enable_io()
    .enable_time()
    .build()
    .unwrap();

    let result = runtime.block_on(ustc_cas::get_ticket(
    "PB00000000",
    "12345678",
    "https://jw.ustc.edu.cn/ucas-sso/login",
 ));

 match result {
    Ok(s) => {
        println!("ticket: {s}");
    },
    Err(e) => {
        println!("Error: {e}");
    }
 }

特性

  • validate-code:使用 imagebytes 包进行代码识别验证。如果启用此特性但请求验证代码,则 get_ticket 函数将引发 panic。默认启用。
  • blocking:提供 get_ticket 函数的阻塞版本。
  • native-tls:使用系统 TLS 库。默认启用。
  • rustls-tls:使用 rustls 进行 TLS 功能。

依赖项

~6–24MB
~297K SLoC