diff options
author | rtkay123 <dev@kanjala.com> | 2025-07-30 08:52:05 +0200 |
---|---|---|
committer | rtkay123 <dev@kanjala.com> | 2025-07-30 08:52:05 +0200 |
commit | 259cad06f8d88db9ddfa85c2c188b5b0130cb393 (patch) | |
tree | 2211866223d17d7a36c89e3eb39da39ea9863153 /crates/auth-service/src/server/routes/authorised.rs | |
parent | 92620ba85d729d27ffe4d141149ba9b82e543d74 (diff) | |
download | sellershut-259cad06f8d88db9ddfa85c2c188b5b0130cb393.tar.bz2 sellershut-259cad06f8d88db9ddfa85c2c188b5b0130cb393.zip |
feat(auth): create keypair
Diffstat (limited to 'crates/auth-service/src/server/routes/authorised.rs')
-rw-r--r-- | crates/auth-service/src/server/routes/authorised.rs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/crates/auth-service/src/server/routes/authorised.rs b/crates/auth-service/src/server/routes/authorised.rs index 2538cdc..b4c2e00 100644 --- a/crates/auth-service/src/server/routes/authorised.rs +++ b/crates/auth-service/src/server/routes/authorised.rs @@ -23,7 +23,7 @@ use crate::{ auth::Claims, error::AppError, server::{ - OAUTH_CSRF_COOKIE, csrf_token_validation::csrf_token_validation_workflow, routes::Provider, + csrf_token_validation::csrf_token_validation_workflow, keys::generate_actor_keypair, routes::Provider, OAUTH_CSRF_COOKIE }, state::AppHandle, }; @@ -49,6 +49,7 @@ struct User { struct DbUser { id: Uuid, email: String, + private_key: String, created_at: OffsetDateTime, updated_at: OffsetDateTime, } @@ -92,8 +93,6 @@ pub async fn login_authorised( .await .context("failed to deserialise response as JSON")?; - dbg!(&user_data); - let user_data: User = serde_json::from_value(user_data)?; if !user_data.verified { @@ -124,19 +123,22 @@ pub async fn login_authorised( .fetch_optional(&mut *transaction) .await?; + let keys = generate_actor_keypair()?; + let user = if let Some(user) = user { user } else { let uuid = uuid::Uuid::now_v7(); let user = sqlx::query_as!( DbUser, - "insert into auth_user (id, email) values ($1, $2) + "insert into auth_user (id, email, private_key) values ($1, $2, $3) on conflict (email) do update set email = excluded.email returning *; ", uuid, user_data.email, + keys.private_key, ) .fetch_one(&mut *transaction) .await?; @@ -180,6 +182,7 @@ pub async fn login_authorised( ), )?; + let user_request = CreateUserRequest { email: user_data.email.to_owned(), avatar: user_data.avatar.as_ref().map(|value| { @@ -188,6 +191,7 @@ pub async fn login_authorised( user_data.id ) }), + public_key: keys.public_key, }; store |