Use rpxnow.com. Integrate with them once, and it will let users from Google, Yahoo, Microsoft, Facebook, etc log into your site.
The process is fairly simple:
- Stick their javascript code on your login page.
- Write a controller which RPXnow calls with a token for the authentication callback. This routine parses out the token, and makes a secure web call to rpxnow.com to get data about the user. Grab the email address, which is then authentic.
- Since you now have an authentic email address, the user can be granted access to the inner part of your site.
If you use RPX for authentication, you don't have to write a "forgot my password" feature, or a "signup" feature with email confirmation. The identity provider does this.
Stackoverflow.com uses a similar scheme for authentication.
(This is based on the assumption that 99% of internet users have one of Google, Yahoo, Hotmail/Live, or Facebook).