1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*!
# `simple-authorization` Request Guard for Rocket Framework

This crate provides a request guard builder used for authorization.

See `examples`.
*/

mod macros;

#[macro_use]
#[doc(hidden)]
pub extern crate rocket;

use rocket::request::Request;

/// The trait for an authorizer.
#[async_trait]
pub trait SimpleAuthorization<'r>
where
    Self: Sized, {
    /// Check whether the value in the `Authorization` header is valid or not. If it is valid, create a new instance of `Self`.
    async fn authorizing(request: &'r Request<'_>, authorization: Option<&'r str>) -> Option<Self>;
}