1 个不稳定版本
| 0.1.0 | 2022年12月19日 | 
|---|
在 身份验证 中排名 581
每月下载量 39 次
12KB
185 行
Auth0 JWT
Auth0工具,用于检查给定的JWT是否有效。
用法
use auth0_jwt::get_claims;
#[tokio::async]
async fn main() {
  let token = env!("JWT_TOKEN");
  let claims = get_claims(&token).unwrap();
  println!("Claims {}", claims);
}
功能
- claims- 导出- Claims结构体,该结构体对反序列化很有用。
- axum- 为- Claims实现了- FromRequestParts<T>特性,并提供了一个方便的- Token(String)提取器。
Axum 示例
use auth0_jwt::claims::Claims;
use axum::{response::IntoResponse, routing::get, Json, Router};
use dotenv::dotenv;
use serde::{Deserialize, Serialize};
use std::net::SocketAddr;
#[tokio::main]
async fn main() {
    dotenv().ok();
    // build our application with a route
    let app = Router::new().route("/", get(handler));
    // run it
    let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
    println!("listening on {}", addr);
    axum::Server::bind(&addr)
        .serve(app.into_make_service())
        .await
        .unwrap();
}
#[derive(Serialize)]
struct ResponseBody {
    message: &'static str,
}
#[derive(Deserialize, Serialize)]
struct ClaimsContent {
    pub exp: usize,
    pub iat: usize
}
async fn handler(Claims(claims): Claims<ClaimsContent>) -> impl IntoResponse {
    println!("{:?}", claims.exp);
    Json(ResponseBody {
        message: "hello world",
    })
}
依赖项
~5–21MB
~292K SLoC