diff --git a/src/WorkFlowCheck.Web/Pages/Account/Login.cshtml.cs b/src/WorkFlowCheck.Web/Pages/Account/Login.cshtml.cs index 14c1b7d..4512db9 100644 --- a/src/WorkFlowCheck.Web/Pages/Account/Login.cshtml.cs +++ b/src/WorkFlowCheck.Web/Pages/Account/Login.cshtml.cs @@ -1,5 +1,7 @@ +using Microsoft.AspNetCore.Identity.Data; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; +using System.Text.Json; using WorkFlowCheck.Common.DTO; using WorkFlowCheck.Web.Services.Interfaces; @@ -21,5 +23,28 @@ namespace WorkFlowCheck.Web.Pages.Account public void OnGet() { } + public async Task OnPostAsync() + { + var response = await _userService.Authenticate(UserDTO.UserName, UserDTO.Password); + + if (response.IsSuccess) + { + + var token = response.Data.JwtToken; + + Response.Cookies.Append("AuthToken", token, new CookieOptions + { + HttpOnly = true, + Secure = true, + SameSite = SameSiteMode.Strict, + Expires = DateTimeOffset.UtcNow.AddMinutes(30) + }); + + return RedirectToPage("/Index"); // vagy ahová szeretnéd + } + + ErrorMessage = "Hibás bejelentkezés!"; + return Page(); + } } } diff --git a/src/WorkFlowCheck.Web/Services/Interfaces/IUserService.cs b/src/WorkFlowCheck.Web/Services/Interfaces/IUserService.cs index 471dac8..5676e4c 100644 --- a/src/WorkFlowCheck.Web/Services/Interfaces/IUserService.cs +++ b/src/WorkFlowCheck.Web/Services/Interfaces/IUserService.cs @@ -1,6 +1,9 @@ -namespace WorkFlowCheck.Web.Services.Interfaces +using WorkFlowCheck.Common.DTO; + +namespace WorkFlowCheck.Web.Services.Interfaces { public interface IUserService { + Task> Authenticate(string username, string password); } } diff --git a/src/WorkFlowCheck.Web/Services/UserService.cs b/src/WorkFlowCheck.Web/Services/UserService.cs index 0415b82..dcd1958 100644 --- a/src/WorkFlowCheck.Web/Services/UserService.cs +++ b/src/WorkFlowCheck.Web/Services/UserService.cs @@ -1,4 +1,6 @@  +using Newtonsoft.Json; +using WorkFlowCheck.Common.DTO; using WorkFlowCheck.Web.Services.Interfaces; namespace WorkFlowCheck.Web.Services @@ -8,5 +10,47 @@ namespace WorkFlowCheck.Web.Services public UserService(HttpClient httpClient, IConfiguration configuration) : base(httpClient, configuration) { } + public async Task> Authenticate(string username, string password) + { + try + { + // Az API végpont meghatározása + string endpoint = $"{_httpClient.BaseAddress}api/user/authenticate"; + + var userDTO = new UserDTO() + { + Email = "", + FirstName = "", + LastName = "", + Id = 0, + UserName = username, + Password = password, + RoleDTO = new List(), + }; + + // HTTP POST kérés küldése + + using (HttpResponseMessage httpResponseMessage = await _httpClient.PostAsJsonAsync(endpoint, userDTO)) + { + httpResponseMessage.EnsureSuccessStatusCode(); + + var jsonString = await httpResponseMessage.Content.ReadAsStringAsync(); + var response = JsonConvert.DeserializeObject>(jsonString); + + return response ?? new ApiResponseDTO + { + IsSuccess = false, + }; + } + } + catch (Exception ex) + { + // Hiba visszaadása + return new ApiResponseDTO + { + IsSuccess = false + }; + } + } } }