在 HttpResponse 中设置授权标头会引发"borrowed value does not live long enough"



我正在使用activxweb在RESTapi中对用户进行身份验证。用于认证用户的端点设置";授权";生成的令牌的响应对象的标头。

async fn signin(request: web::Json<UserAndPw>) -> impl Responder {
let token = String::from("thisisatest");
HttpResponse::Ok()
.header(AUTHORIZATION, HeaderValue::from_static(&token))
.json(ApiResponse {...})
}

这是编译时发生的错误:

.header(AUTHORIZATION, HeaderValue::from_static(&test_token))
-------------------------^^^^^^^^^^^-
|                   |                        |
|                   |                        borrowed value does not live long enough
|                   argument requires that `test_token` is borrowed for `'static`

在您的情况下,token是一个局部变量,对它的引用(&token(肯定没有静态生存期。编译器错误解释并显示给您。

您可能希望以其他方式创建HeaderValue实例,而不是通过from_static。例如:HeaderValue::from_str(&token)

相关内容

最新更新