Spaces:
Sleeping
Sleeping
File size: 1,670 Bytes
87c9973 c596926 87c9973 c596926 87c9973 c596926 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Security.Claims;
namespace LibraryManagement.Backend.Features.Auth
{
[ApiController]
[Route("api/auth")]
public class AuthController : ControllerBase
{
private readonly IAuthService _authService;
public AuthController(IAuthService authService)
{
_authService = authService;
}
[HttpPost("register")]
public async Task<ActionResult<AuthResponse>> Register([FromBody] RegisterRequest request)
{
try
{
var response = await _authService.Register(request);
return Ok(response);
}
catch (Exception ex)
{
return BadRequest(new { message = ex.Message });
}
}
[HttpPost("login")]
public async Task<ActionResult<AuthResponse>> Login([FromBody] LoginRequest request)
{
try
{
var response = await _authService.Login(request);
return Ok(response);
}
catch (Exception ex)
{
return Unauthorized(new { message = ex.Message });
}
}
[HttpGet("me")]
[Authorize]
public IActionResult GetCurrentUser()
{
var claims = User.Claims.Select(c => new { c.Type, c.Value }).ToList();
return Ok(new
{
IsAuthenticated = User.Identity?.IsAuthenticated,
Name = User.Identity?.Name,
Claims = claims
});
}
}
}
|