BLOG-94 Create user in DB when first login through OIDC #96

Merged
squid merged 4 commits from BLOG-94_create_user_when_first_login into main 2025-08-01 13:24:09 +08:00
Showing only changes of commit ef7db7424a - Show all commits

View File

@ -46,18 +46,26 @@ impl ExchangeAuthCodeUseCase for ExchangeAuthCodeUseCaseImpl {
.exchange_auth_code(code, expected_nonce) .exchange_auth_code(code, expected_nonce)
.await?; .await?;
let saved_user = self let saved_user_result = self
.auth_repository .auth_repository
.get_user_by_source_id(&logged_in_user.issuer, &logged_in_user.source_id) .get_user_by_source_id(&logged_in_user.issuer, &logged_in_user.source_id)
.await; .await;
if saved_user.err() == Some(AuthError::UserNotFound) { match saved_user_result {
Ok(user) => {
logged_in_user.id = user.id;
}
Err(AuthError::UserNotFound) => {
let id = self let id = self
.auth_repository .auth_repository
.save_user(logged_in_user.clone()) .save_user(logged_in_user.clone())
.await?; .await?;
logged_in_user.id = id; logged_in_user.id = id;
} }
Err(e) => {
return Err(e);
}
};
Ok(logged_in_user) Ok(logged_in_user)
} }