如何从Rocket中的请求检索HTTP标头?

迪莱克·帕多瓦尼(Dilec Padovani)

我会在Python中使用flask做类似的事情:

@app.route('/login/', methods=['POST'])
def login():
    token = request.headers["token"]

我无法弄清楚如何访问token标头并将其存储为String变量。

#![feature(proc_macro_hygiene, decl_macro)]

use rocket::{
    config::{Config, Environment},
    *,
};

fn main() {
    let config = Config::build(Environment::Production)
        .address("0.0.0.0")
        .port(PORT)
        .finalize()
        .unwrap();

    rocket::ignite().mount("/", routes![login]).launch();
}

#[post("/login")]
fn login() {

    // Retrieve headers from request.
}
易卜拉欣·艾哈迈德(Ibraheem Ahmed)

Rocket处理程序基于请求防护。您不会在处理程序中直接访问该请求。而是创建一个实现的类型FromRequest

您可以创建一个包含字符串的令牌结构:

struct Token(String);

并实现FromRequest令牌:

impl<'a, 'r> FromRequest<'a, 'r> for Token {
    type Error = Infallible;

    fn from_request(request: &'a Request<'r>) -> request::Outcome<Self, Self::Error> {
        let token = request.headers().get_one("token");
        match token {
          Some(token) => {
            // check validity
            Outcome::Success(Token(token.to_string()))
          },
          // token does not exist
          None => Outcome::Failure(Status::Unauthorized)
        }
    }
}

现在,您可以将其Token用作请求防护:

#[post("/login")]
fn login(token: Token) {
}

如果from_request方法Token失败,Status::Unauthorized将返回a。否则,将调用您的处理程序,并且您可以处理身份验证逻辑。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从Rocket中的请求检索HTTP标头?

来自分类Dev

如何检索请求的Alamofire响应标头

来自分类Dev

如何检索失败的Ajax请求的标头

来自分类Dev

AngularJS如何在Http请求中包含标头

来自分类Dev

如何在ruby的http请求中包含标头

来自分类Dev

如何在compojure请求中获取特定的HTTP标头

来自分类Dev

Android中的HTTP请求标头问题

来自分类Dev

在 Http 请求中设置标头

来自分类Dev

HTTP请求标头

来自分类Dev

我如何获取我在node.js http请求中实际发送的http请求标头

来自分类Dev

如何从ReactJS中的初始页面请求获取HTTP请求标头

来自分类Dev

如何在boost-beast http请求中设置http标头?

来自分类Dev

如何在Flutter中的HTTP发布请求中传递标头?

来自分类Dev

检索Cordova File Transfer ASP Server中的HTTP标头

来自分类Dev

如何在WCF Web服务中读取HTTP请求标头?

来自分类Dev

如何在机器人框架HTTP请求库中为CreateSession添加标头

来自分类Dev

如何为Ionic 2中的所有请求设置默认的Http标头?

来自分类Dev

如何在Flask中捕获和读取传入的HTTP请求的标头?

来自分类Dev

在Firefox中,如何查看HTTP请求标头?(在Web控制台中的何处?)

来自分类Dev

如何在Spring MVC中基于http请求标头启用json的动态漂亮打印?

来自分类Dev

如何将Span <Byte>获取到Kestrel中的HTTP请求标头

来自分类Dev

如何根据Chrome扩展程序中的用户选项修改HTTP请求标头?

来自分类Dev

如何为Ionic 2中的所有请求设置默认的Http标头?

来自分类Dev

ngx_lua如何删除http请求标头

来自分类Dev

如何发送带有标头参数的HTTP请求?

来自分类Dev

如何为带有wreq的请求设置HTTP标头?

来自分类Dev

我如何记录HTTP请求的主机标头(Spring Boot)

来自分类Dev

如何通过curl查看HTTP请求标头?

来自分类Dev

如何传递HTTP标头以从API发出请求?

Related 相关文章

  1. 1

    如何从Rocket中的请求检索HTTP标头?

  2. 2

    如何检索请求的Alamofire响应标头

  3. 3

    如何检索失败的Ajax请求的标头

  4. 4

    AngularJS如何在Http请求中包含标头

  5. 5

    如何在ruby的http请求中包含标头

  6. 6

    如何在compojure请求中获取特定的HTTP标头

  7. 7

    Android中的HTTP请求标头问题

  8. 8

    在 Http 请求中设置标头

  9. 9

    HTTP请求标头

  10. 10

    我如何获取我在node.js http请求中实际发送的http请求标头

  11. 11

    如何从ReactJS中的初始页面请求获取HTTP请求标头

  12. 12

    如何在boost-beast http请求中设置http标头?

  13. 13

    如何在Flutter中的HTTP发布请求中传递标头?

  14. 14

    检索Cordova File Transfer ASP Server中的HTTP标头

  15. 15

    如何在WCF Web服务中读取HTTP请求标头?

  16. 16

    如何在机器人框架HTTP请求库中为CreateSession添加标头

  17. 17

    如何为Ionic 2中的所有请求设置默认的Http标头?

  18. 18

    如何在Flask中捕获和读取传入的HTTP请求的标头?

  19. 19

    在Firefox中,如何查看HTTP请求标头?(在Web控制台中的何处?)

  20. 20

    如何在Spring MVC中基于http请求标头启用json的动态漂亮打印?

  21. 21

    如何将Span <Byte>获取到Kestrel中的HTTP请求标头

  22. 22

    如何根据Chrome扩展程序中的用户选项修改HTTP请求标头?

  23. 23

    如何为Ionic 2中的所有请求设置默认的Http标头?

  24. 24

    ngx_lua如何删除http请求标头

  25. 25

    如何发送带有标头参数的HTTP请求?

  26. 26

    如何为带有wreq的请求设置HTTP标头?

  27. 27

    我如何记录HTTP请求的主机标头(Spring Boot)

  28. 28

    如何通过curl查看HTTP请求标头?

  29. 29

    如何传递HTTP标头以从API发出请求?

热门标签

归档