[−][src]Module firestore_db_and_auth::rocket
Rocket Authentication Guard
Because the sessions
module of this crate is already able to verify access tokens,
it was not much more work to turn this into a Rocket 0.4+ Guard.
The implemented Guard (enabled by the feature "rocket_support") allows access to http paths if the provided http "Authorization" header contains a valid "Bearer" token. The above mentioned validations on the token are performed.
Example:
use firestore_db_and_auth::{Credentials, rocket::FirestoreAuthSessionGuard}; fn main() { let credentials = Credentials::from_file("firebase-service-account.json").unwrap(); rocket::ignite().manage(credentials).mount("/", routes![hello, hello_not_logged_in]).launch(); } /// And an example route could be: #[get("/hello")] fn hello<'r>(auth: FirestoreAuthSessionGuard) -> String { // ApiKey is a single value tuple with a sessions::user::Session object inside format!("you are logged in. user_id: {}", auth.0.user_id) } #[get("/hello")] fn hello_not_logged_in<'r>() -> &'r str { "you are not logged in" }
Structs
FirestoreAuthSessionGuard | Use this Rocket guard to secure a route for authenticated users only. Will return the associated session, that contains the used access token for further use and access to the Firestore database. |