LibraryManagement / Backend /Features /Auth /AuthController.cs
Yuyuqt
add: blazor web assembly.
4433399
Raw
History Blame Contribute Delete
1.69 kB
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Security.Claims;
using LibraryManagement.Shared.Models;
namespace 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
});
}
}
}