我正在使用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)
。