Make them upload a picture of themselves next to today's newspaper, where today's date is legible, and you need to be able to verify the paper is legit. That would be possible but not easy at all to fake.
The second best way is credit card, and use a third-party service that doesn't require you to store any cc info locally.
Unfortunately, people have more than one cc, more than one email, and you can't ask for ssn, but even if you could, that isn't guaranteed to be unique:
http://ssa-custhelp.ssa.gov/app/answers/detail/a_id/79/~/req...
DNA is unique, but that is too expensive and can be faked unless checked immediately, and depending on type of test, can be faked even in person if blood not taken (difficult to fake otherwise), and can't do online.
Vocal recognition for determining whether a user is unique and for relogin later can be faked online easily.
Visual recognition online may be decent way to do it, but probably too expensive, and could be faked by someone holding up someone else's picture, or a video of someone from YouTube (although could check for artifacts indicating is from video source).
Retinal scan can be faked.
Gait + body/facial recognition isn't too bad, but you can't do that online. That is what the government uses with street cameras in cities, etc.