sa-token-plugin-axum 0.1.12

Axum framework integration for sa-token-rust - All-in-one package
Documentation

sa-token-plugin-axum

Axum framework integration for sa-token-rust.

Features

  • High Performance: Built for Axum 0.7+
  • 🎯 Easy Integration: Middleware and extractors
  • 🔧 Flexible: Multiple configuration options
  • 🛡️ Complete: Full authentication and authorization support

Installation

[dependencies]
sa-token-plugin-axum = { version = "0.1.12", features = ["redis"] }
axum = "0.8"
tokio = { version = "1", features = ["full"] }

Quick Start

use axum::{Router, routing::get};
use sa_token_plugin_axum::{SaTokenState, SaTokenMiddleware, LoginIdExtractor};
use sa_token_storage_memory::MemoryStorage;
use std::sync::Arc;

#[tokio::main]
async fn main() {
    let state = SaTokenState::builder()
        .storage(Arc::new(MemoryStorage::new()))
        .timeout(7200)
        .build();
    
    let app = Router::new()
        .route("/user/info", get(user_info))
        .layer(SaTokenMiddleware::new(state.clone()))
        .with_state(state);
    
    // Start server...
}

async fn user_info(LoginIdExtractor(login_id): LoginIdExtractor) -> String {
    format!("User ID: {}", login_id)
}

Configuration

let state = SaTokenState::builder()
    .storage(Arc::new(storage))
    .token_name("Authorization")
    .timeout(86400)
    .auto_renew(true)
    .token_style(TokenStyle::Random64)
    .build();

Extractors

  • SaTokenExtractor: Required token
  • OptionalSaTokenExtractor: Optional token
  • LoginIdExtractor: Get current login ID

Version History

0.1.12

  • ✨ Added path-based authentication support for fine-grained access control
  • 🔧 Optimized middleware implementation, reduced code duplication

0.1.11

  • Initial release with basic features

Author

金书记

License

Licensed under either of Apache-2.0 or MIT.