Example #1
0
        public async Task <AuthResponseDto> Login(UserForAuthDto userForAuthentication)
        {
            var content     = JsonSerializer.Serialize(userForAuthentication);
            var bodyContent = new StringContent(content, Encoding.UTF8, "application/json");
            var authResult  = await _httpClient.PostAsync("account/login", bodyContent);

            var authContent = await authResult.Content.ReadAsStringAsync();

            var result = JsonSerializer.Deserialize <AuthResponseDto>(authContent, new JsonSerializerOptions {
                PropertyNameCaseInsensitive = true
            });

            if (!authResult.IsSuccessStatusCode)
            {
                return(result);
            }
            await _localStorage.SetItemAsync("authToken", result.Token);

            await _localStorage.SetItemAsync("refreshToken", result.RefreshToken);

            ((AuthStateProvider)_authenticationState).NotifyUserAuthentication(result.Token);
            _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", result.Token);
            return(new AuthResponseDto {
                IsAuthSuccessful = true
            });
        }
Example #2
0
        public async Task <IActionResult> Login(UserForAuthDto userForLoginDto)
        {
            userForLoginDto.email = userForLoginDto.email.ToLower();

            var userFromRepo = await _repo.Login(userForLoginDto.email, userForLoginDto.password);

            if (userFromRepo == null)
            {
                return(Unauthorized());
            }

            var claims = new[]
            {
                new Claim(ClaimTypes.NameIdentifier, userFromRepo.id.ToString()),
                new Claim(ClaimTypes.Name, userFromRepo.email)
            };

            var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:secretKey").Value));

            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature);

            var tokenDescripter = new SecurityTokenDescriptor {
                Subject            = new ClaimsIdentity(claims),
                Expires            = DateTime.Now.AddDays(1),
                SigningCredentials = creds
            };

            var tokenHandler = new JwtSecurityTokenHandler();
            var token        = tokenHandler.CreateToken(tokenDescripter);

            return(Ok(new{
                token = tokenHandler.WriteToken(token)
            }));
        }
Example #3
0
        public async Task <IActionResult> DeleteUser(UserForAuthDto userForDeleteDto)
        {
            userForDeleteDto.email = userForDeleteDto.email.ToLower();

            var userFromRepo = await _repo.Login(userForDeleteDto.email, userForDeleteDto.password);

            if (userFromRepo == null)
            {
                return(Unauthorized());
            }

            if (await _repo.DeleteUser(userForDeleteDto.email, userForDeleteDto.password))
            {
                return(Ok());
            }
            else
            {
                return(BadRequest());
            }
        }