I found Devise with the help of Omniauth fairly effective. With a little more patience than I have, you could get things working with just Omniauth.
The devise version that you would need lives on GitHub, and as of the current version, you need a github version of omniauth as well.
From my gemfile:
gem 'devise', :git => 'https://github.com/plataformatec/devise.git'
#oath enables facebook login, for one
gem 'omniauth', :git => 'https://github.com/intridea/omniauth.git'
gem 'oa-oauth', :require => "omniauth/oauth"
#openid enables google login, and openid generally
gem 'oa-openid', :require => 'omniauth/openid'
There's a decent tutorial on one possible way to use Devise with Facebook here:
https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview
Facebook will return an email address with sample code provided in the link above; I presume you can ask it for a profile picture as well, though I haven't explored the authorization API much yet.