Possible to login with email or username and added api/ back to the routes
This commit is contained in:
parent
1d4e17dcef
commit
f1f5a45232
@ -6,7 +6,7 @@ using Microsoft.AspNetCore.Authorization;
|
||||
namespace Api.Controllers
|
||||
{
|
||||
[ApiController]
|
||||
[Route("[controller]")]
|
||||
[Route("api/[controller]")]
|
||||
public class DeviceController : Controller
|
||||
{
|
||||
private readonly DBContext _context;
|
||||
|
@ -3,7 +3,7 @@
|
||||
namespace Api.Controllers
|
||||
{
|
||||
[ApiController]
|
||||
[Route("[controller]")]
|
||||
[Route("api/[controller]")]
|
||||
public class HealthController : Controller
|
||||
{
|
||||
[HttpGet]
|
||||
|
@ -10,7 +10,7 @@ using Microsoft.AspNetCore.Authorization;
|
||||
namespace Api.Controllers
|
||||
{
|
||||
[ApiController]
|
||||
[Route("[controller]")]
|
||||
[Route("api/[controller]")]
|
||||
public class UserController : Controller
|
||||
{
|
||||
private readonly DBContext _context;
|
||||
@ -23,10 +23,10 @@ namespace Api.Controllers
|
||||
}
|
||||
|
||||
[HttpPost("Login")]
|
||||
public async Task<IActionResult> Login([FromBody] User user)
|
||||
public async Task<IActionResult> Login([FromBody] Login login)
|
||||
{
|
||||
DbAccess dBAccess = new DbAccess(_context);
|
||||
user = await dBAccess.Login(user);
|
||||
var user = await dBAccess.Login(login);
|
||||
if (user.Id == 0) { return Unauthorized(new { error = "Invalid username or password" }); }
|
||||
var token = GenerateJwtToken(user);
|
||||
return Ok(new { token, user.UserName, user.Id });
|
||||
|
@ -41,19 +41,25 @@ namespace Api.DBAccess
|
||||
return await _context.SaveChangesAsync() == 1;
|
||||
}
|
||||
|
||||
public async Task<User> Login(User user)
|
||||
public async Task<User> Login(Login login)
|
||||
{
|
||||
var profile = await _context.Users.FirstAsync(u => u.UserName == user.UserName);
|
||||
if (profile == null)
|
||||
User user = new User();
|
||||
if (!login.EmailOrUsrn.Contains("@"))
|
||||
{
|
||||
profile = await _context.Users.FirstAsync(u => u.Email == user.Email);
|
||||
user = await _context.Users.FirstAsync(u => u.UserName == login.EmailOrUsrn);
|
||||
}
|
||||
else
|
||||
{
|
||||
user = await _context.Users.FirstAsync(u => u.Email == login.EmailOrUsrn);
|
||||
}
|
||||
|
||||
string hashedPassword = ComputeHash(user.Password, SHA256.Create(), profile.Salt);
|
||||
if (user == null) { return new User(); }
|
||||
|
||||
string hashedPassword = ComputeHash(user.Password, SHA256.Create(), user.Salt);
|
||||
|
||||
if (hashedPassword == user.Password)
|
||||
{
|
||||
return profile;
|
||||
return user;
|
||||
}
|
||||
return new User();
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
{
|
||||
public class Login
|
||||
{
|
||||
public string Login { get; set; }
|
||||
public string EmailOrUsrn { get; set; }
|
||||
|
||||
public string Password { get; set; }
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user