Добавьте файлы проекта.

This commit is contained in:
FrigaT
2026-04-13 14:16:44 +03:00
parent b2b5a3945a
commit 37c997dbe0
120 changed files with 5364 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
@page "/login"
@using PlaylistShared.PWA.Services
@inject NavigationManager Navigation
@inject AuthStateProvider AuthProvider
@inject ApiClient ApiClient
@inject ISnackbar Snackbar
<MudContainer MaxWidth="MaxWidth.Small" Class="mt-16">
<MudCard>
<MudCardContent Class="text-center">
<MudText Typo="Typo.h5" Class="mb-4">Вход в PlaylistShared</MudText>
<MudButton Variant="Variant.Filled" Color="Color.Primary" OnClick="LoginWithYandex" StartIcon="@Icons.Custom.Brands.Yandex" FullWidth="true">
Войти через Яндекс
</MudButton>
<MudDivider Class="my-4">или</MudDivider>
<MudTextField Label="Логин" @bind-Value="_username" Variant="Variant.Outlined" FullWidth="true" />
<MudTextField Label="Пароль" @bind-Value="_password" InputType="InputType.Password" Variant="Variant.Outlined" FullWidth="true" />
<MudButton Variant="Variant.Filled" Color="Color.Secondary" OnClick="LoginWithPassword" FullWidth="true">Войти по паролю</MudButton>
<MudText Class="mt-4">
Нет аккаунта? <MudLink Href="/register">Зарегистрироваться</MudLink>
</MudText>
</MudCardContent>
</MudCard>
</MudContainer>
@code {
private string _username = "";
private string _password = "";
private void LoginWithYandex()
{
Navigation.NavigateTo("https://localhost:5001/api/externalauth/login-yandex", true);
}
private async Task LoginWithPassword()
{
var result = await ApiClient.LoginAsync(_username, _password);
if (result != null)
{
await AuthProvider.MarkUserAsAuthenticated(result.Token, result.RefreshToken);
Navigation.NavigateTo("/");
}
else
{
Snackbar.Add("Неверный логин или пароль", Severity.Error);
}
}
}