/// <inheritdoc/> public async Task <bool> LoginByPass(LoginByPassCredentials credentials) { using var client = _factory.CreateClient(HttpClients.WebSshClient); using var response = await client.PostAsync(UrlConstants.Login, credentials.AsStringContent()); if (!response.IsSuccessStatusCode) { var res = await response.Content.ReadAsStringAsync(); _message.Error(res); return(false); } var result = (await response.Content.ReadFromJsonAsync <AuthData>(JsonExtensions.JsonSerializerOptions)) !; await _localStorage.SetItem(LocalStorageConstants.AuthToken, result.AccessToken); await _localStorage.SetItem(LocalStorageConstants.AuthData, result); ((ApiAuthenticationStateProvider)_authenticationStateProvider).MarkUserAsAuthenticated(result.UserName); _navigationManager.NavigateTo(PageUrlConstants.Index); return(true); }
/// <inheritdoc /> public async Task <JsonWebToken> LoginByPassAsync(LoginByPassCredentials credentials) { var user = await CheckUser(credentials); var result = await GetFullJwtToken(user); await UpdateLastLogin(user); _logger.Info(_localizer[UsersConstants.LoggedSuccess, user.UserName]); return(result); }
/// <summary> /// Checks the user. /// </summary> /// <param name="credentials">The credentials.</param> /// <returns></returns> /// <exception cref="AuthorizationErrorException"></exception> private async Task <User> CheckUser(LoginByPassCredentials credentials) { var user = await GetUser(credentials.UserName); if (user == null) { //_logger.Error(_validationLocalizer.Message(ValidationConstants.InvalidLoginOrPassword), LoggerEntityType.AuthProfileEntity, null); throw new AuthorizationErrorException(_validationLocalizer.Message(ValidationConstants.InvalidLoginOrPassword)); } if (user.Status == UserStatus.Locked) { //_logger.Error(_validationLocalizer.Message(ValidationConstants.UserLocked), LoggerEntityType.AuthProfileEntity, user.UserName); throw new AuthorizationErrorException(_validationLocalizer.Message(ValidationConstants.UserLocked)); } await CheckPasswordAsync(user, credentials.Password); return(user); }
/// <summary> /// /// </summary> /// <param name="model"></param> public AuthCommand(LoginByPassCredentials model) { Model = model; }
public async Task <IActionResult> Login( [FromBody] LoginByPassCredentials credentials, CancellationToken token) => Ok(await _mediator.Send(new AuthCommand(credentials), token));