The lower house of parliament voted 396 to 99 to approve the controversial law.
“I’m willing to host women and children who are escaping from war ... But all the others, no,” Salvini said on Thursday, referring to the legislation.
“I don’t want to be seen as an idiot.”
Italy will still grant asylum to war refugees or victims of political persecution.
However, it will no longer hand out “humanitarian” asylum, which was given to those who had “serious reasons” to flee their home country – for example, homosexuals fleeing harsh anti-gay laws in Africa.
The more than 20,000 asylum seekers who received “humanitarian” protection last year, and the tens of thousands of others who got it in previous years will now likely lose their legal status when their documents expire.
The new law also heightens controls on people who rent trucks, and strips naturalised foreigners who are convicted on terrorism charges of their Italian citizenship.
The League’s lawmakers celebrated the victory on Thursday by displaying a banner outside the lower house of parliament which read: “The Salvini decree is law; the good times [for migrants] are over.”
However, critics say the decree will increase the number of migrants in irregular legal situations.
They claim that those without papers will turn to illegal activities to make ends meet since they will not be able to be employed receive social benefits.