The government insists the law is needed to stem the flow of refugees even though Denmark and Sweden recently tightened their borders, a move that prompted Germany and Austria to turn back new arrivals heading for Scandinavia.
The bill presented by the right-wing minority government of Prime Minister Lars Lokke Rasmussen was approved by a huge majority of 81 of the 109 lawmakers present, as members of the opposition Social Democrats backed the measures.
The legislation stirred great controversy, with Rasmussen defending it as "the most misunderstood bill in Denmark's history."
International outrage has focused on plans to allow police to seize cash and valuables from refugees to help pay for their stay in asylum centres, while rights activists have blasted a proposed three-year delay for family reunifications which they say breaches international conventions.
Some have likened the Danish proposals to the confiscation of gold and other valuables from Jews by the Nazis during the Holocaust.
Social Democrat Dan Jorgensen addressed opponents of the bill, demanding: "To those saying what we are doing is wrong, my question is: What is your alternative?
"The alternative is that we continue to be (one of) the most attractive countries in Europe to come to, and then we end up like Sweden."
Copenhagen has often referred to neighbouring Sweden as a bad example, where 163,000 asylum applications were submitted last year -- five times more than in Denmark relative to their population size.
Asylum seekers will now have to hand over cash exceeding 10,000 kroner (USD 1,450) and any individual items valued at more than that amount, up from the initial 3,000 kroner proposed.
After thorny negotiations with the other parties, Integration Minister Inger Stojberg agreed to make wedding rings and other items of sentimental value exempt.
The government has defended the move by arguing that Danes who want to qualify for social benefits may also have to sell their valuables.
