If Devise/Warden/etc. still do too much for your taste, check out LetMeIn, a less-is-more approach to the age old problem of AuthN.
There are no built-in routes/controllers/views/helpers or anything. I’m confident you can do those yourself, because you’re awesome.
In this case, minimalistic doesn’t mean a lack of features. I love the way
<class_name>Session objects are created for you based on the models you’ve configured:
LetMeIn.configure do |conf| conf.models = ['User', 'Admin'] conf.attributes = ['email', 'username'] end
Check out the entertaining README for details.