* Added Authentication
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
using FaKrosnoApi.Models;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using OrdersManagementDataModel.Dtos;
|
||||
using OrdersManagementDataModel.Services;
|
||||
@@ -28,6 +29,51 @@ public class UsersController(IUserService service) : Controller
|
||||
UserDto? user = await service.GetByUsername(username);
|
||||
return user != null ? Ok(user) : NotFound();
|
||||
}
|
||||
|
||||
[HttpPost("authenticate")]
|
||||
public async Task<IActionResult> Authenticate([FromBody] AuthenticateRequestModel? request)
|
||||
{
|
||||
if (request == null || string.IsNullOrEmpty(request.Login) || string.IsNullOrEmpty(request.Password))
|
||||
{
|
||||
return BadRequest(new { message = "Login i hasło są wymagane" });
|
||||
}
|
||||
|
||||
var user = await service.GetByUsername(request.Login);
|
||||
|
||||
var x = BCrypt.Net.BCrypt.Verify(request.Password, user?.PasswordHash);
|
||||
|
||||
if (user == null || !BCrypt.Net.BCrypt.Verify(request.Password, user.PasswordHash))
|
||||
{
|
||||
return Unauthorized(new { message = "Nieprawidłowy login lub hasło" });
|
||||
}
|
||||
|
||||
var userDto = new UserDto
|
||||
{
|
||||
Id = user.Id,
|
||||
Login = user.Login,
|
||||
IsTemporaryPassword = user.IsTemporaryPassword,
|
||||
IsActive = user.IsActive,
|
||||
ActiveFrom = user.ActiveFrom,
|
||||
ActiveTo = user.ActiveTo,
|
||||
Email = user.Email,
|
||||
FirstName = user.FirstName,
|
||||
LastName = user.LastName,
|
||||
CreatedDate = user.CreatedDate,
|
||||
LastLoginDate = user.LastLoginDate,
|
||||
FailedLoginAttempts = user.FailedLoginAttempts,
|
||||
IsLocked = user.IsLocked,
|
||||
LockoutEndDate = user.LockoutEndDate,
|
||||
RowPointer = user.RowPointer
|
||||
};
|
||||
|
||||
user.LastLoginDate = DateTime.Now;
|
||||
user.FailedLoginAttempts = 0;
|
||||
await service.Login(user);
|
||||
|
||||
return Ok(userDto);
|
||||
}
|
||||
|
||||
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ActionResult<UserDto>> Add([FromBody] UserDto user)
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="BCrypt.Net-Core" Version="1.6.0" />
|
||||
<PackageReference Include="Hangfire" Version="1.8.17" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.11" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.11" />
|
||||
|
||||
7
FaKrosnoApi/Models/AuthenticateRequestModel.cs
Normal file
7
FaKrosnoApi/Models/AuthenticateRequestModel.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace FaKrosnoApi.Models;
|
||||
|
||||
public class AuthenticateRequestModel
|
||||
{
|
||||
public string Login { get; set; }
|
||||
public string Password { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user