小编moo*_*ddi的帖子

如何使用 Warp 检查授权标头?

我正在用 Rust 和 Warp 构建一个 graphql api。我已经浏览了文档,但我仍然没有弄清楚如何链接过滤器,尤其是检查authorization请求标头时。

let context_extractor = warp::any()
    // this code rejects all request which doesn't contain the authorization in header
    // I'd like to make to check if authorization in header
    .and(warp::header::<String>("authorization"))
    .map(|token: String| -> Context {
        let token_data = match verify_jwt(token) {
            Ok(t) => t,
            Err(_) => return Context { user_id: 0 },
        };

        Context {
            user_id: token_data.claims.user_id,
        }
    });

let handle_request = move |context: Context,
                           request: juniper::http::GraphQLRequest|
      -> Result<Vec<u8>, serde_json::Error> {
    serde_json::to_vec(&request.execute(&schema, …
Run Code Online (Sandbox Code Playgroud)

rust rust-warp

7
推荐指数
1
解决办法
2312
查看次数

标签 统计

rust ×1

rust-warp ×1