mirror of
https://github.com/QuotifyTeam/QuotifyBE.git
synced 2025-12-17 01:00:07 +01:00
feat: provide user data on login, minor fix to seeding, logical fixes
This commit is contained in:
@@ -4,6 +4,7 @@ using QuotifyBE.Data;
|
||||
using QuotifyBE.Entities;
|
||||
using QuotifyBE.DTOs;
|
||||
using System.Threading.Tasks;
|
||||
using QuotifyBE.Mapping;
|
||||
|
||||
namespace QuotifyBE.Controllers;
|
||||
|
||||
@@ -35,13 +36,13 @@ public class AuthController : ControllerBase
|
||||
/// in the Authorization header, e.g.: Authorization: bearer {jwt}
|
||||
/// </remarks>
|
||||
/// <param name="formUser">User's credentials (email and password)</param>
|
||||
/// <returns>JWT valid for 5 minutes.</returns>
|
||||
/// <response code="200">Returned on request with valid credentials</response>
|
||||
/// <returns>JWT valid for 5 minutes and basic user data.</returns>
|
||||
/// <response code="200">Returned on request with valid credentials. Contains the token, but also user data.</response>
|
||||
/// <response code="400">Returned on request with missing form data (email, password or both)</response>
|
||||
/// <response code="401">Returned on request with unknown pair of email and password (wrong password)</response>
|
||||
/// <response code="404">Returned on request with unknwon email</response>
|
||||
[HttpPost("login")]
|
||||
[ProducesResponseType(200)]
|
||||
[ProducesResponseType(typeof(SuccessfulLoginDTO), 200)]
|
||||
[ProducesResponseType(typeof(ErrorDTO), 400)]
|
||||
[ProducesResponseType(typeof(ErrorDTO), 401)]
|
||||
[ProducesResponseType(typeof(ErrorDTO), 404)]
|
||||
@@ -60,19 +61,22 @@ public class AuthController : ControllerBase
|
||||
return NotFound(new {status = "error", error_msg = "User not found"});
|
||||
}
|
||||
|
||||
|
||||
// Hash the password and compare with the user-provided one
|
||||
string hashedFormPassword = guhf.HashWithSHA512(formUser.Password);
|
||||
if (hashedFormPassword == user.PasswordHash)
|
||||
{
|
||||
// All set - generate the token and return it
|
||||
var token = guhf.GenerateJwtToken(formUser.Email);
|
||||
return Ok(new { status = "ok", token });
|
||||
SuccessfulLoginDTO response = user.ToSuccessfulLoginDTO(token);
|
||||
|
||||
return Ok(response);
|
||||
} else return Unauthorized(new {status = "error", error_msg = "Unknown pair of email and password"});
|
||||
}
|
||||
|
||||
// GET /api/v1/auth/some_values
|
||||
/// <summary>
|
||||
/// Dummy, authed endpoint
|
||||
/// [AUTHED] Dummy, authed endpoint
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Dummy, authed endpoint used to test JWTs.
|
||||
|
||||
Reference in New Issue
Block a user