Exemplo n.º 1
0
        public async Task <IActionResult> Login(DtoUserForLogin DtoUserForLogin)
        {
            var user = await _authRepository.Login(DtoUserForLogin.username.ToLower(), DtoUserForLogin.password);

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

            var claim = new[] {
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                new Claim(ClaimTypes.Name, user.Username)
            };
            var key             = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(config.GetSection("AppSettings:Token").Value));
            var cred            = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature);
            var tokenDescriptor = new SecurityTokenDescriptor {
                Subject            = new ClaimsIdentity(claim),
                Expires            = DateTime.Now.AddDays(1),
                SigningCredentials = cred
            };

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

            return(Ok(new{ token = tokenHandler.WriteToken(token) }));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Available(DtoUserForLogin dto)
        {
            dto.UserName = dto.UserName.ToLower();
            var swAvailable = await _repo.UserExits(dto.UserName);

            return(Ok(!swAvailable));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Login(DtoUser dto)
        {
            dto.UserName = dto.UserName.ToLower();

            var userFromRepos = await _repo.Login(dto.UserName, dto.Password);

            if (userFromRepos == null)
            {
                return(Unauthorized("Pas autorisé à se connecter"));
            }
            var claims = new[]
            {
                new Claim(ClaimTypes.NameIdentifier, userFromRepos.Id.ToString()),
                new Claim(ClaimTypes.Name, userFromRepos.UserName)
            };
            var appSettingsToken = _configuration.GetSection("AppSettings:Token").Value;
            var key             = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(appSettingsToken));
            var creds           = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject            = new ClaimsIdentity(claims),
                Expires            = DateTime.Now.AddDays(1),
                SigningCredentials = creds,
            };
            var tokenHandler = new JwtSecurityTokenHandler();
            var token        = tokenHandler.CreateToken(tokenDescriptor);
            var loginDto     = new DtoUserForLogin
            {
                UserName = dto.UserName,
                Token    = tokenHandler.WriteToken(token)
            };

            return(Ok(loginDto));
        }
Exemplo n.º 4
0
        public async Task <bool> PostAvailable(DtoUserForLogin dto)
        {
            var swAvailable = false;

            if (dto.UserName == "" || dto.UserName.Length <= 2 || dto.UserName.Length > 30)
            {
                return(swAvailable);
            }
            var reqJson = JsonConvert.SerializeObject(dto);

            using (var req = new HttpRequestMessage(HttpMethod.Post, $"{Constants.Base_URL}api/User/available"))
            {
                req.Content = new StringContent(reqJson, Encoding.Default, "application/json");
                using (var response = await _httpClient.SendAsync(req))
                {
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        swAvailable = Convert.ToBoolean(await response.Content.ReadAsStringAsync());
                    }
                }
            }
            return(swAvailable);
        }
Exemplo n.º 5
0
        public async Task <IActionResult> Login(DtoUserForLogin userForLogin)
        {
            var loginUser = await _repo.Login(userForLogin.Username.ToLower(), userForLogin.Password);

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

            var userToReturn = _mapper.Map <UserForListDto>(loginUser);

            return(Ok(new
            {
                token = GenerateJwtToken(loginUser),
                user = userToReturn
            }));


            //var user = await _userManager.FindByNameAsync(userForLogin.Username);

            //var result = await _signInManager
            //    .CheckPasswordSignInAsync(user, userForLogin.Password, false);

            //if (result.Succeeded)
            //{
            //    //var appUser = await _userManager.Users.Include(p => p.Photos)
            //    //    .FirstOrDefaultAsync(u => u.NormalizedUserName == userForLoginDto.Username.ToUpper());

            //    //var userToReturn = _mapper.Map<UserForListDto>(appUser);

            //    //return Ok(new
            //    //{
            //    //    token = GenerateJwtToken(appUser).Result,
            //    //    user = userToReturn
            //    //});
            //}
        }