1个不稳定版本
0.2.1-r1 | 2020年1月18日 |
---|
#436 in #web-framework
1MB
29K SLoC
actix web框架的认证服务
文档和社区资源
- 用户指南
- API文档
- 在gitter上聊天
- Cargo包: actix-session
- 最低支持的Rust版本:1.34或更高
lib.rs
:
为Actix应用程序请求身份服务。
IdentityService 中间件可以使用不同的策略类型来存储身份信息。
默认情况下,仅实现了cookie身份策略。其他后端实现可以单独添加。
CookieIdentityPolicy 使用cookie作为身份存储。
要访问当前请求身份 Identity 提取器应该被使用。
use requiem_web::*;
use requiem_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
~777K SLoC