There is no reason for the login API to be proprietary:
Universal Login 1.0 File:
(ULAPI-1.0 (username "oconnore")
(seed "a3k5...") (password-hash "pq3i...") (password-hash "ve83...")
(additional-information (eye-color "brown") (email "@.com") ...)))
To create an account on a site, you give the site your UL url, and your password, and it associates the url with your user name in its database. Now when you want to login to a site, you give it your user name, and your password. The back end retrieves the file, hashes your password with the seed, and if it matches a hash in your UL file, voila, you are accepted.
Cool benefits of this are that you can use separate passwords for your bank and your twitter, and you can host your own ID (or pick someone you trust), only allow certain servers to request it, dynamically generate a unique ID for each site, etc.