diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-12-21 23:37:23 +0100 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-12-21 23:37:23 +0100 |
| commit | 82ade3c31fb17b662feec59e9e654ceb66edbb7a (patch) | |
| tree | 26443c41c55d2cd2ae46fdd0d663aca84b779ffe /code/api/Endpoints/Account/LoginEndpoint.cs | |
| parent | e60703aadca7d423c0fbfb189d5ef439fc1df072 (diff) | |
| download | storage-82ade3c31fb17b662feec59e9e654ceb66edbb7a.tar.xz storage-82ade3c31fb17b662feec59e9e654ceb66edbb7a.zip | |
feat: Add initial schema and start login
Diffstat (limited to 'code/api/Endpoints/Account/LoginEndpoint.cs')
| -rw-r--r-- | code/api/Endpoints/Account/LoginEndpoint.cs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/code/api/Endpoints/Account/LoginEndpoint.cs b/code/api/Endpoints/Account/LoginEndpoint.cs new file mode 100644 index 0000000..0ffed0f --- /dev/null +++ b/code/api/Endpoints/Account/LoginEndpoint.cs @@ -0,0 +1,38 @@ +using I2R.Storage.Api.Endpoints._Root; + +namespace I2R.Storage.Api.Endpoints.Account; + +public class LoginEndpoint : Base +{ + private readonly AppDatabase _database; + private readonly UserService _userService; + private readonly IStringLocalizer<SharedResources> _localizer; + + public new class Request + { + public string Username { get; set; } + public string Password { get; set; } + } + + public LoginEndpoint(UserService userService, AppDatabase database, IStringLocalizer<SharedResources> localizer) { + _userService = userService; + _database = database; + _localizer = localizer; + } + + [AllowAnonymous] + [HttpPost("~/account/login")] + public async Task<ActionResult> Handle([FromBody] Request request) { + var user = _database.Users.FirstOrDefault(c => c.Username == request.Username); + if (user == default) { + return BadRequest(_localizer["Invalid username or password"]); + } + + if (!PasswordHelper.Verify(request.Password, user.Password)) { + return BadRequest(_localizer["Invalid username or password"]); + } + + await _userService.LogInUserAsync(HttpContext, user.DefaultClaims()); + return Ok(); + } +}
\ No newline at end of file |
