Files
WorkFlowCheck/src/WorkFlowCheck.Web/Pages/Account/Login.cshtml.cs
T
2026-09-12 18:19:29 +02:00

71 lines
2.3 KiB
C#

using Microsoft.AspNetCore.Authorization;
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;
namespace WorkFlowCheck.Web.Pages.Account
{
[AllowAnonymous]
public class LoginModel : PageModel
{
private readonly IUserService _userService;
[BindProperty]
public User2FADTO User2FADTO { get; set; }
public string ErrorMessage { get; set; }
public LoginModel(IUserService userService)
{
_userService = userService;
}
public void OnGet()
{
}
public async Task<IActionResult> OnPostLogin2F1([FromBody] UserSimpleDTO userSimpleDTO)
{
var response = await _userService.Authenticate2F1(userSimpleDTO.UserName, userSimpleDTO.Password);
if (response.IsSuccess)
{
return new JsonResult(new { success = true, data = response.Data });
}
else
{
ErrorMessage = "Hibás bejelentkezés!";
return new JsonResult(new { success = false });
}
}
public async Task<IActionResult> OnPostLogin2F2([FromBody] User2FADTO user2FADTO)
{
var response = await _userService.Authenticate2F2(user2FADTO.UserName,
user2FADTO.Password,
user2FADTO.Code,
user2FADTO.Token2FA);
if (response.IsSuccess)
{
var token = response.Data.JwtToken;
Response.Cookies.Append("AuthToken", token, new CookieOptions
{
HttpOnly = true,
Secure = HttpContext.Request.IsHttps,
SameSite = SameSiteMode.Lax,
Expires = DateTimeOffset.UtcNow.AddDays(1)
});
return new JsonResult(new { success = true });
}
ErrorMessage = "Hibás bejelentkezés!";
return new JsonResult(new { success = false });
}
}
}