Added a few controllers and views

This commit is contained in:
2025-11-29 21:15:56 +01:00
parent f9a41263a5
commit 6819d1e38b
18 changed files with 2073 additions and 6 deletions

View File

@@ -0,0 +1,69 @@
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
namespace OneForMe.Controllers;
[ApiController]
[Route("api/[controller]")]
public class AuthController : ControllerBase
{
private readonly UserManager<IdentityUser> _userManager;
private readonly SignInManager<IdentityUser> _signInManager;
public AuthController(UserManager<IdentityUser> userManager, SignInManager<IdentityUser> signInManager)
{
_userManager = userManager;
_signInManager = signInManager;
}
/// <summary>
/// Register a new user
/// </summary>
[HttpPost("register")]
public async Task<IActionResult> Register([FromBody] RegisterRequest request)
{
var user = new IdentityUser { UserName = request.Email, Email = request.Email };
var result = await _userManager.CreateAsync(user, request.Password);
if (result.Succeeded)
return Ok(new { message = "User registered successfully" });
return BadRequest(new { errors = result.Errors.Select(e => e.Description) });
}
/// <summary>
/// Login user
/// </summary>
[HttpPost("login")]
public async Task<IActionResult> Login([FromBody] LoginRequest request)
{
var result = await _signInManager.PasswordSignInAsync(request.Email, request.Password, false, false);
if (result.Succeeded)
return Ok(new { message = "Login successful" });
return Unauthorized(new { message = "Invalid email or password" });
}
/// <summary>
/// Logout user
/// </summary>
[HttpPost("logout")]
public async Task<IActionResult> Logout()
{
await _signInManager.SignOutAsync();
return Ok(new { message = "Logout successful" });
}
}
public class RegisterRequest
{
public string Email { get; set; } = string.Empty;
public string Password { get; set; } = string.Empty;
}
public class LoginRequest
{
public string Email { get; set; } = string.Empty;
public string Password { get; set; } = string.Empty;
}