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
|
namespace Api.Controllers
|
||||||
{
|
{
|
||||||
[ApiController]
|
[ApiController]
|
||||||
[Route("[controller]")]
|
[Route("api/[controller]")]
|
||||||
public class DeviceController : Controller
|
public class DeviceController : Controller
|
||||||
{
|
{
|
||||||
private readonly DBContext _context;
|
private readonly DBContext _context;
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
namespace Api.Controllers
|
namespace Api.Controllers
|
||||||
{
|
{
|
||||||
[ApiController]
|
[ApiController]
|
||||||
[Route("[controller]")]
|
[Route("api/[controller]")]
|
||||||
public class HealthController : Controller
|
public class HealthController : Controller
|
||||||
{
|
{
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
|
@ -10,7 +10,7 @@ using Microsoft.AspNetCore.Authorization;
|
|||||||
namespace Api.Controllers
|
namespace Api.Controllers
|
||||||
{
|
{
|
||||||
[ApiController]
|
[ApiController]
|
||||||
[Route("[controller]")]
|
[Route("api/[controller]")]
|
||||||
public class UserController : Controller
|
public class UserController : Controller
|
||||||
{
|
{
|
||||||
private readonly DBContext _context;
|
private readonly DBContext _context;
|
||||||
@ -23,10 +23,10 @@ namespace Api.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost("Login")]
|
[HttpPost("Login")]
|
||||||
public async Task<IActionResult> Login([FromBody] User user)
|
public async Task<IActionResult> Login([FromBody] Login login)
|
||||||
{
|
{
|
||||||
DbAccess dBAccess = new DbAccess(_context);
|
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" }); }
|
if (user.Id == 0) { return Unauthorized(new { error = "Invalid username or password" }); }
|
||||||
var token = GenerateJwtToken(user);
|
var token = GenerateJwtToken(user);
|
||||||
return Ok(new { token, user.UserName, user.Id });
|
return Ok(new { token, user.UserName, user.Id });
|
||||||
|
@ -41,19 +41,25 @@ namespace Api.DBAccess
|
|||||||
return await _context.SaveChangesAsync() == 1;
|
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);
|
User user = new User();
|
||||||
if (profile == null)
|
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)
|
if (hashedPassword == user.Password)
|
||||||
{
|
{
|
||||||
return profile;
|
return user;
|
||||||
}
|
}
|
||||||
return new User();
|
return new User();
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
{
|
{
|
||||||
public class Login
|
public class Login
|
||||||
{
|
{
|
||||||
public string Login { get; set; }
|
public string EmailOrUsrn { get; set; }
|
||||||
|
|
||||||
public string Password { get; set; }
|
public string Password { get; set; }
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user