Пример #1
0
        public string GenerateToken(UserAutenticationDto userAutenticationDto)
        {
            var tokenHandler    = new JwtSecurityTokenHandler();
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject            = GenerateSubject(userAutenticationDto),
                Expires            = DateTime.Now.AddHours(1),
                SigningCredentials = GenerateSigningCredentials()
            };

            var token = tokenHandler.CreateToken(tokenDescriptor);

            userAutenticationDto.Token = tokenHandler.WriteToken(token);
            return(userAutenticationDto.Token);
        }
Пример #2
0
        public async Task <UserAutenticationDto> LoginAsync(UserAutenticationDto userDto)
        {
            try
            {
                var passwordEncrypted = _cryptStrategy.Encrypt(userDto.Password);
                var user = await _userRepository.GetUserAsync(userDto.Username, passwordEncrypted);

                if (user is null)
                {
                    userDto.AddError("Usuário e/ou senha incorretos.");
                    userDto.Password = string.Empty;
                    return(userDto);
                }

                _tokenService.GenerateToken(userDto);

                return(userDto);
            }
            catch (Exception)
            {
                userDto.AddError("Ocorreu um erro inesperado.");
                return(userDto);
            }
        }
Пример #3
0
 public async Task <ActionResult> LoginAsync(UserAutenticationDto dto)
 => ResultHandler(await _userUpdater.LoginAsync(dto));
Пример #4
0
 private ClaimsIdentity GenerateSubject(UserAutenticationDto userAutenticationDto)
 => new ClaimsIdentity(new Claim[]
 {
     new Claim(ClaimTypes.Name, userAutenticationDto.Username),
     new Claim(ClaimTypes.Role, userAutenticationDto.Role)
 });