Axum 中基于 Cookie 的身份验证:从提取器到中间件

2025-06-05

本文探讨了在 Rust 的 Axum 框架中实现基于 Cookie 的用户身份验证的两种方法。首先,作者介绍了使用自定义提取器 `CookieJwt` 从请求中提取 JWT 令牌,并根据 JWT 的有效性来决定显示用户配置文件还是登录按钮。然而,这种方法在处理复杂的认证场景和保持代码整洁方面存在不足。随后,作者改进了方法,使用 Axum 中间件来处理身份验证逻辑,这使得代码更清晰、可重用,并能更好地处理各种身份验证场景,例如不同权限级别的用户访问控制。文中详细介绍了中间件的实现过程,包括 JWT 的验证、刷新令牌的处理以及对不同请求类型的支持,最终实现了更健壮和灵活的用户身份验证系统。

开发