summaryrefslogtreecommitdiff
path: root/src/token
diff options
context:
space:
mode:
Diffstat (limited to 'src/token')
-rw-r--r--src/token/app.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/token/app.rs b/src/token/app.rs
index cb5d75f..0dc1a46 100644
--- a/src/token/app.rs
+++ b/src/token/app.rs
@@ -30,7 +30,7 @@ impl<'a> Tokens<'a> {
name: &str,
password: &Password,
login_at: &DateTime,
- ) -> Result<Secret, LoginError> {
+ ) -> Result<(Login, Secret), LoginError> {
let mut tx = self.db.begin().await?;
let (login, stored_hash) = tx
.auth()
@@ -45,6 +45,8 @@ impl<'a> Tokens<'a> {
// if the account is deleted during that time.
tx.commit().await?;
+ let snapshot = login.as_snapshot().ok_or(LoginError::Rejected)?;
+
let token = if stored_hash.verify(password)? {
let mut tx = self.db.begin().await?;
let token = tx.tokens().issue(&login, login_at).await?;
@@ -54,7 +56,7 @@ impl<'a> Tokens<'a> {
Err(LoginError::Rejected)?
};
- Ok(token)
+ Ok((snapshot, token))
}
pub async fn validate(