US President Donald Trump signed a new travel ban Wednesday targeting 12 countries, including Afghanistan, Iran and Yemen, reviving one of the most controversial measures from his first term.

Trump said the measure was spurred by a makeshift flamethrower attack on a Jewish protest in Colorado that US authorities blamed on a man they said was in the country illegally.

The move bans all travel to the United States by nationals of Afghanistan, Myanmar, Chad, the Republic of the Congo, Equatorial Guinea, Eritrea, Haiti, Iran, Libya, Somalia, Sudan and Yemen.

Trump also imposed a partial ban on travellers from seven countries: Burundi, Cuba, Laos, Sierra Leone, Togo, Turkmenistan and Venezuela.