1个不稳定版本
0.2.1 | 2020年1月20日 |
---|
#627 in #web-framework
1MB
29K SLoC
Actori Web框架的标识服务
文档和社区资源
- 用户指南
- API文档
- 在gitter上聊天
- Cargo包: actori-session
- 最低支持的Rust版本:1.34或更高
lib.rs
:
请求Actori应用程序的标识服务。
IdentityService 中间件可以与不同策略类型一起使用来存储标识信息。
默认情况下,仅实现了cookie标识策略。其他后端实现可以单独添加。
CookieIdentityPolicy 使用cookie作为标识存储。
要访问当前请求的标识,应使用 Identity 提取器。
use actori_web::*;
use actori_identity::{Identity, CookieIdentityPolicy, IdentityService};
async fn index(id: Identity) -> String {
// access request identity
if let Some(id) = id.identity() {
format!("Welcome! {}", id)
} else {
"Welcome Anonymous!".to_owned()
}
}
async fn login(id: Identity) -> HttpResponse {
id.remember("User1".to_owned()); // <- remember identity
HttpResponse::Ok().finish()
}
async fn logout(id: Identity) -> HttpResponse {
id.forget(); // <- remove identity
HttpResponse::Ok().finish()
}
fn main() {
let app = App::new().wrap(IdentityService::new(
// <- create identity middleware
CookieIdentityPolicy::new(&[0; 32]) // <- create cookie identity policy
.name("auth-cookie")
.secure(false)))
.service(web::resource("/index.html").to(index))
.service(web::resource("/login.html").to(login))
.service(web::resource("/logout.html").to(logout));
}
依赖关系
~33MB
~771K SLoC