From 0f8a88c30eac8ed7c6869e1944cc77a3eb3488ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B0=D0=B2=D0=B5=D0=BB=D0=B8=D0=B9=20=D0=92=D0=BE?= =?UTF-8?q?=D1=82=D0=B8=D0=BD=D1=86=D0=B5=D0=B2?= Date: Wed, 17 Sep 2025 19:12:00 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9C=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Добавлен BadRequest при отсутствии email - Немного поправлена вёрстка --- .../Controllers/ExternalAuthController.cs | 14 +++++-- frontend/Money.Web/Pages/Account/Login.razor | 42 +++++++++++++------ 2 files changed, 39 insertions(+), 17 deletions(-) diff --git a/backend/Money.Api/Controllers/ExternalAuthController.cs b/backend/Money.Api/Controllers/ExternalAuthController.cs index c8bc647..2f58482 100644 --- a/backend/Money.Api/Controllers/ExternalAuthController.cs +++ b/backend/Money.Api/Controllers/ExternalAuthController.cs @@ -68,10 +68,16 @@ public async Task Callback() var userId = principal.FindFirst(OpenIddictConstants.Claims.Subject)?.Value ?? principal.FindFirst(ClaimTypes.NameIdentifier)?.Value; - // TODO: Не работает - var email = principal.FindFirst(ClaimTypes.Email)!.Value; + var email = principal.FindFirst(ClaimTypes.Email)?.Value + ?? principal.FindFirst(OpenIddictConstants.Claims.Email)?.Value; + + if (string.IsNullOrWhiteSpace(email)) + { + return BadRequest("Email обязателен для внешней аутентификации."); + } + var name = principal.FindFirst(ClaimTypes.Name)?.Value; - var userNameCandidate = name?? BuildValidUserName(email, userId); + var userNameCandidate = name ?? BuildValidUserName(email, userId); var providerName = result.Properties?.GetString(OpenIddictClientAspNetCoreConstants.Properties.ProviderName) ?? "GitHub"; @@ -96,7 +102,7 @@ public async Task Callback() { UserName = uniqueUserName, Email = email, - EmailConfirmed = email != null + EmailConfirmed = true, }; var createResult = await userManager.CreateAsync(user); diff --git a/frontend/Money.Web/Pages/Account/Login.razor b/frontend/Money.Web/Pages/Account/Login.razor index d2ff6ca..385f382 100644 --- a/frontend/Money.Web/Pages/Account/Login.razor +++ b/frontend/Money.Web/Pages/Account/Login.razor @@ -57,20 +57,36 @@ - - Войти через bob217.Auth - - - Войти через GitHub - - + + Вход через внешние сервисы + + Используйте один из провайдеров ниже. Для входа требуется доступ к вашему email. + + + + + Войти через bob217.Auth + + + + Войти через GitHub + + + + + + +