BLOG-94 Create user in DB when first login through OIDC #96
@ -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 {
|
||||||
let id = self
|
Ok(user) => {
|
||||||
.auth_repository
|
logged_in_user.id = user.id;
|
||||||
.save_user(logged_in_user.clone())
|
}
|
||||||
.await?;
|
Err(AuthError::UserNotFound) => {
|
||||||
logged_in_user.id = id;
|
let id = self
|
||||||
}
|
.auth_repository
|
||||||
|
.save_user(logged_in_user.clone())
|
||||||
|
.await?;
|
||||||
|
logged_in_user.id = id;
|
||||||
|
}
|
||||||
|
Err(e) => {
|
||||||
|
return Err(e);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
Ok(logged_in_user)
|
Ok(logged_in_user)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user