From 2231ab6730552d3b58b00ae42d490743a29d7c8b Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Tue, 23 Aug 2022 18:57:16 +0200 Subject: Add docs --- server/src/models/auth.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'server/src/models/auth.rs') diff --git a/server/src/models/auth.rs b/server/src/models/auth.rs index 573f5d1..8b8f61c 100644 --- a/server/src/models/auth.rs +++ b/server/src/models/auth.rs @@ -14,15 +14,21 @@ struct Keys { decoding: DecodingKey, } +/// Claims struct #[derive(Serialize, Deserialize)] pub struct Claims { + /// ID from the user model user_id: i32, + /// Expiration timestamp exp: usize, } +/// Body used as response to login #[derive(Serialize)] pub struct AuthBody { + /// Access token string access_token: String, + /// "Bearer" string token_type: String, } @@ -41,6 +47,7 @@ impl Keys { } impl Claims { + /// Create a new Claim using the `user_id` and the current timestamp + 2 days pub fn new(user_id: i32) -> Self { let expiration = Local::now() + Duration::days(2); @@ -50,6 +57,8 @@ impl Claims { } } + /// Returns the token as a string. If a token is not encoded, raises an + /// `AppError::TokenCreation` pub fn get_token(&self) -> Result { let token = encode(&Header::default(), &self, &KEYS.encoding) .map_err(|_| AppError::TokenCreation)?; @@ -67,6 +76,7 @@ impl AuthBody { } } +/// Parse a request to get the Authorization header and then decode it checking its validation #[async_trait] impl FromRequest for Claims where -- cgit v1.2.3-18-g5258