diff options
Diffstat (limited to 'Controllers/LoginController.cs')
| -rw-r--r-- | Controllers/LoginController.cs | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/Controllers/LoginController.cs b/Controllers/LoginController.cs index bb31fe2..364bc5e 100644 --- a/Controllers/LoginController.cs +++ b/Controllers/LoginController.cs @@ -11,8 +11,15 @@ namespace HyperBooru.Controllers; [Route("/")] public class LoginController : Controller { private IHttpContextAccessor httpContextAccessor; - public LoginController(IHttpContextAccessor httpContextAccessor) => + private IPrincipalProvider principalProvider; + + public LoginController( + IHttpContextAccessor httpContextAccessor, + IPrincipalProvider principalProvider) { + this.httpContextAccessor = httpContextAccessor; + this.principalProvider = principalProvider; + } [HttpPost("Login")] public async Task<IActionResult> Login( @@ -20,17 +27,16 @@ public class LoginController : Controller { [FromForm] string password, HBContext db) { - var user = db.Users.FirstOrDefault(u => u.Name == username); + var user = principalProvider.GetUser(username); if(user is null) return StatusCode(403); - var hash = UserService.HashPassword(password); - if(hash != user.PasswordHash) + if(!principalProvider.ValidatePassword(user, password)) return StatusCode(403); var claims = new Claim[] { new Claim(ClaimTypes.Name, user.Name), - new Claim("ObjectId", user.ObjectId.ToString()) + new Claim("SID", user.Sid.ToString()) }; var claimsIdentity = new ClaimsIdentity( |
