#basic-authentication #basic-auth #rocket #raw #user-name #built #mechanism

basic-auth-raw

一个为Rocket提供基本身份验证基础的库

1个不稳定版本

使用旧的Rust 2015

0.1.0 2018年5月16日

#9 in #basic-auth

MIT 协议

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