Improved self.from_omniauth method