In my mental model of authentication, a user should be distinct from the way they log in. So for example, a User could have an associated EmailLogin (with an email/password), or they could have many (or none). Similarly they could have 0..* associated OpenIDLogin credentials.
Are there any existing authentication libraries for Rails which use this method?
Alternatively, is this a really terrible idea?
Instead of creating an User model where each User has only one pair of credentials to authenticate with, create an User and a Login models where each user has many Logins (and Login belongs_to User). So for example with authlogic you would define the models like this (or similar):