#cookies #axum #tower

tower-cookies

为 tower 提供的 Cookie 管理中间件

15 个版本 (9 个破坏性更新)

0.10.0 2023年11月27日
0.9.0 2023年2月12日
0.8.0 2022年11月25日
0.7.0 2022年6月9日
0.3.0 2021年11月18日

#93 in 网页编程

Download history 7361/week @ 2024-04-27 6335/week @ 2024-05-04 7159/week @ 2024-05-11 7293/week @ 2024-05-18 7393/week @ 2024-05-25 8007/week @ 2024-06-01 7253/week @ 2024-06-08 9106/week @ 2024-06-15 25356/week @ 2024-06-22 20599/week @ 2024-06-29 17118/week @ 2024-07-06 15732/week @ 2024-07-13 15287/week @ 2024-07-20 15794/week @ 2024-07-27 15760/week @ 2024-08-03 14612/week @ 2024-08-10

63,638 每月下载量
用于 45 个 Crates (18 个直接使用)

MIT 许可证

26KB
455

License Crates.io Docs.rs

tower-cookies

基于 tower 构建的 Cookie 管理中间件。

示例

使用 axum

use axum::{routing::get, Router};
use std::net::SocketAddr;
use tower_cookies::{Cookie, CookieManagerLayer, Cookies};

#[tokio::main]
async fn main() {
    let app = Router::new()
        .route("/", get(handler))
        .layer(CookieManagerLayer::new());

    let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
    let listener = tokio::net::TcpListener::bind(&addr).await.unwrap();
    axum::serve(listener, app.into_make_service())
        .await
        .unwrap();
}

async fn handler(cookies: Cookies) -> &'static str {
    cookies.add(Cookie::new("hello_world", "hello_world"));

    "Check your cookies."
}

examples/counter.rs 中的完整 CRUD Cookie 示例

安全性

此 crate 使用 #![forbid(unsafe_code)] 来确保所有内容都在 100% 安全的 Rust 中实现。

贡献

我们感谢所有类型的贡献,谢谢!

关于 README 的说明

大多数 README 是通过 cargo-sync-readme 自动从 crate 文档复制的。这样 README 总是与文档同步,并且示例已测试。

所以如果你想要更改 <!-- cargo-sync-readme start --><!-- cargo-sync-readme end --> 标记之间的 README 的一部分,请直接编辑 README.md,而是更改 src/lib.rs 上的文档,然后与 README 同步

cargo sync-readme

(确保已安装 cargo 命令)

cargo install cargo-sync-readme

如果你已安装 rusty-hook,更改将在提交时自动应用。

许可证

本项目采用 MIT 许可证

依赖

~3–10MB
~76K SLoC