2个版本
0.1.1 | 2023年10月26日 |
---|---|
0.1.0 | 2023年10月24日 |
#821 in HTTP服务器
18KB
71 行
Tide (http-rs/tide) JWT认证中间件
这个Rust库为Tide web服务器框架提供了一个中间件,专注于使用tide_jsonwebtoken
crate通过JWT(JSON Web Tokens)进行API密钥认证。
功能
- 使用JWT无缝验证API密钥。
- 直接与Tide路由集成。
- 高效处理受保护和不受保护的路由。
快速入门
将所需依赖项添加到您的Cargo.toml
[dependencies]
tide = "0.16" # Use the latest version
tide-jsonwebtoken = "0.1.0" # Use the latest version
async-std = { version = "1.12.0", features = ["attributes"] } # Use the latest version
用法
-
初始化中间件:
首先,创建一个
ApiKeyMiddleware
实例let jwt = ApiKeyMiddleware::new("your-secret-key");
-
设置Tide应用程序:
初始化Tide应用程序并将中间件应用于特定路由
let mut app = tide::new(); app.at("/login").get(|_| async { Ok("Login route!") }); app.at("/name/:id") .with(jwt) .get(|req: Request<()>| async move { Ok(format!("Hello, {}!", req.param("id").unwrap_or("0"))) });
-
运行服务器:
app.listen("127.0.0.1:8080").await?;
错误处理
中间件检查传入请求中的x-api-key
头。如果JWT验证通过,则请求继续;否则,中间件返回401 未授权
状态。潜在的错误消息包括
API密钥缺失
:请求缺少x-api-key
头。无效的API密钥
:提供的API密钥(JWT)无效。
贡献
鼓励提交拉取请求。对于重大调整,请首先发起一个问题,以讨论所需更改。
依赖项
~9–21MB
~336K SLoC