コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="model"></param>
 public AuthCommand(LoginByPassCredentials model)
 {
     Model = model;
 }
コード例 #5
0
 public async Task <IActionResult> Login(
     [FromBody] LoginByPassCredentials credentials,
     CancellationToken token)
 => Ok(await _mediator.Send(new AuthCommand(credentials), token));