public async Task <IActionResult> CreateTokenAsync([FromBody] LoginModel loginPerson) { var username = loginPerson.Login; var password = loginPerson.Password; var person = await _tokenManager.GetPersonByNameAsync(username); if (person == null) { return(NotFound("Invalid password or login")); } if (!BCrypt.Net.BCrypt.Verify(password, person.PasswordHash)) { return(NotFound("Invalid password or login")); } var claims = _tokenManager.GetClaimsAsync(person); var tokenModel = _tokenManager.GetTokenAsync(claims); var deletePrevious = await _tokenManager.DeletePreviousRefreshTokenAsync(username); if (!deletePrevious) { return(BadRequest("Previous refresh token cannot be deleted")); } var refreshPost = await _tokenManager.SetNewRefreshTokenAsync(username, tokenModel.RefreshToken); if (refreshPost == null) { return(BadRequest("New refresh token didn't set to db")); } return(Ok(tokenModel)); }