我正在 Actix-web 中构建一个小 webapp,但我找不到任何从 Actix-web 中的 POST 请求中获取参数的示例。
搜索他们的优秀示例 repo只提供了几个(对我而言)有意义的示例,但它们都处理 JSON 而不是表单数据。
我还找到了这个页面,我怀疑它包含了答案;但对于初学者来说,这并没有多大帮助。
我想它应该看起来像:
<form method="POST">
<input type="password" name="password">
<button type="submit">Login</button>
</form>
和
fn main() {
// ...
App::with_state(AppState { db: pool.clone() })
.middleware(IdentityService::new(
CookieIdentityPolicy::new(&[0; 32])
.name("auth-cookie")
.secure(true),
))
.resource("/login", |r| {
r.method(http::Method::GET).with(login);
r.method(http::Method::POST).with(perform_login) // help!
})
}
struct LoginParams {
password: String,
}
fn perform_login(mut req: HttpRequest<AppState>, params: LoginParams) -> HttpResponse {
if params.password == "abc123" {
req.remember("logged-in".to_owned());
// redirect to home
};
// show "wrong password" error
}