Added a few controllers and views
This commit is contained in:
69
Controllers/AuthController.cs
Normal file
69
Controllers/AuthController.cs
Normal 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;
|
||||
}
|
||||
Reference in New Issue
Block a user