public ObjectToken Authenticate(IUserAuthenticateDto userDto, IUserServiceAuthenticate userService) { bool credenciaisValidas = false; if (userDto != null) { if (userDto.TypeLogin == TypeLogin.Login) { var usuarioBase = userService.GetForLogin(userDto); credenciaisValidas = (usuarioBase != null); } else if (userDto.TypeLogin == TypeLogin.RefreshToken && !String.IsNullOrWhiteSpace(userDto.RefreshToken)) { RefreshTokenData refreshTokenBase = null; string strTokenArmazenado = _cache.GetString(userDto.RefreshToken); if (!String.IsNullOrWhiteSpace(strTokenArmazenado)) { refreshTokenBase = JsonConvert .DeserializeObject <RefreshTokenData>(strTokenArmazenado); } credenciaisValidas = (refreshTokenBase != null && userDto.Access == refreshTokenBase.Access && userDto.RefreshToken == refreshTokenBase.RefreshToken); // Elimina o token de refresh já que um novo será gerado if (credenciaisValidas) { _cache.Remove(userDto.RefreshToken); } } } if (credenciaisValidas) { return(GenerateToken(userService.GetByAcess(userDto.Access))); } else { return(new ObjectToken() { authenticated = false, message = "Falha ao autenticar" }); } }
public IUserAuthenticate GetForLogin(IUserAuthenticateDto userDto) { return(_userFake.Users.FirstOrDefault(x => x.Access == userDto.Access && x.Password == userDto.Password)); }