An exercise based on Ryan Bates' OmniAuth RailsCast