基于Actix_web的REST API项目注入Header

基于Actix_web的REST API项目,用JWT来认证,很多的Request会需要使用到同样的login_session等内容,

可以在路由到特定的目标路径之前,将token里的login_session解密后取出,并注入到Header中:

if let Ok(token_data) = token_utils::decode_token(token.to_string()) {
    info!("Decoding token...");
    let email = HeaderValue::from_str(&token_data.claims.user).unwrap();
    let headers = req.headers_mut();
    // let val = HeaderValue::from_str("hello").unwrap();
    headers.append(HeaderName::from_static("email"),email);

在需要使用的模块中,再取出:

    match req.headers().get("email") {
        Some(email) => {
//do something here
        },
        None => ()
    };

 

Tags

添加新评论

Restricted HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。