summaryrefslogtreecommitdiff
path: root/src/token/extract/identity.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/token/extract/identity.rs')
-rw-r--r--src/token/extract/identity.rs20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/token/extract/identity.rs b/src/token/extract/identity.rs
index d1c0334..960fe60 100644
--- a/src/token/extract/identity.rs
+++ b/src/token/extract/identity.rs
@@ -10,14 +10,14 @@ use crate::{
app::App,
clock::RequestedAt,
error::{Internal, Unauthorized},
- token::{self, app::ValidateError},
- user::User,
+ login::Login,
+ token::{Token, app::ValidateError},
};
#[derive(Clone, Debug)]
pub struct Identity {
- pub token: token::Id,
- pub user: User,
+ pub token: Token,
+ pub login: Login,
}
impl FromRequestParts<App> for Identity {
@@ -30,11 +30,13 @@ impl FromRequestParts<App> for Identity {
let secret = cookie.secret().ok_or(LoginError::Unauthorized)?;
let app = State::<App>::from_request_parts(parts, state).await?;
- match app.tokens().validate(&secret, &used_at).await {
- Ok((token, user)) => Ok(Identity { token, user }),
- Err(ValidateError::InvalidToken) => Err(LoginError::Unauthorized),
- Err(other) => Err(other.into()),
- }
+ app.tokens()
+ .validate(&secret, &used_at)
+ .await
+ .map_err(|err| match err {
+ ValidateError::InvalidToken => LoginError::Unauthorized,
+ other => other.into(),
+ })
}
}