| Crates.io | sa-token-plugin-axum |
| lib.rs | sa-token-plugin-axum |
| version | 0.1.12 |
| created_at | 2025-10-11 02:52:47.254873+00 |
| updated_at | 2025-12-17 04:49:26.785561+00 |
| description | Axum framework integration for sa-token-rust - All-in-one package |
| homepage | https://github.com/llc-993/sa-token-rust |
| repository | https://github.com/llc-993/sa-token-rust |
| max_upload_size | |
| id | 1877783 |
| size | 73,930 |
Axum framework integration for sa-token-rust.
[dependencies]
sa-token-plugin-axum = { version = "0.1.12", features = ["redis"] }
axum = "0.8"
tokio = { version = "1", features = ["full"] }
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)
}
let state = SaTokenState::builder()
.storage(Arc::new(storage))
.token_name("Authorization")
.timeout(86400)
.auto_renew(true)
.token_style(TokenStyle::Random64)
.build();
SaTokenExtractor: Required tokenOptionalSaTokenExtractor: Optional tokenLoginIdExtractor: Get current login ID金书记
Licensed under either of Apache-2.0 or MIT.