1个不稳定版本
使用旧的Rust 2015
0.1.0 | 2018年5月16日 |
---|
#9 in #basic-auth
6KB
原始基本身份验证
一个Rocket库,提供在之上构建具体身份验证机制的原始基本身份验证基础。
此库导出BasicAuthRaw
,您可以直接在请求处理器中使用。
示例
use basic_auth_raw::BasicAuthRaw;
#[get("/secure-path")
fn secret(basic: BasicAuthRaw) -> String {
format!("Your username is {}", basic.username);
}
或者您可以在其之上构建请求守卫(推荐)。
示例
use basic_auth_raw::BasicAuthRaw;
struct Admin(User);
impl<'a, 'r> FromRequest<'a, 'r> for Admin {
type Error = ();
fn from_request(request: &Request) -> Outcome<Self, Self::Error> {
let basic = BasicAuthRaw::from_request(request)?;
let user = User::from_db(basic.username, basic.password);
if user.is_admin {
Outcome::Success(user);
} else {
Outcome::Failure((Status::Unauthorized, ()));
}
}
}
#[get("/secure-path")
fn secret(admin: Admin) -> String {
format!("Your username is {}", admin.user.username);
}
依赖项
~11–20MB
~382K SLoC