Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pepsighan/basic-auth-raw

A base for Basic Authentication over which a concrete authentication mechanism can be built
https://github.com/pepsighan/basic-auth-raw

basic-authentication rocket-rs

Last synced: about 2 months ago
JSON representation

A base for Basic Authentication over which a concrete authentication mechanism can be built

Awesome Lists containing this project

README

        

# Raw Basic Authentication

A [Rocket](https://github.com/SergioBenitez/Rocket) library to provide a base for
Basic Authentication over which a concrete authentication mechanism can be built.

This library exports `BasicAuthRaw` which you could directly use on the request handler.
#### Example

```rust
use basic_auth_raw::BasicAuthRaw;

#[get("/secure-path")
fn secret(basic: BasicAuthRaw) -> String {
format!("Your username is {}", basic.username);
}
```

Or you could build Request Guards on top of it (Recommended).
#### Example

```rust
use basic_auth_raw::BasicAuthRaw;

struct Admin(User);

impl<'a, 'r> FromRequest<'a, 'r> for Admin {
type Error = ();

fn from_request(request: &Request) -> Outcome {
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);
}
```