if social_user:
         if user and social_user.user != user:
-            raise AuthException(backend,
-                ugettext('This %(provider)s account is already in use.') % {
-                    'provider': backend.name
-                })
+            raise AuthException(backend, ugettext('This %(provider)s account already in use.') % {
+                'provider':backend.name,
+            })
         elif not user:
             user = social_user.user
     return {'social_user': social_user, 'user': user}
     if setting('SOCIAL_AUTH_EXTRA_DATA', True):
         extra_data = backend.extra_data(user, uid, response, details)
         if extra_data and social_user.extra_data != extra_data:
-            social_user.extra_data.update(extra_data)
-            social_user.save()
+            if social_user.extra_data:
+                social_user.extra_data.update(extra_data)
+            else:
+                social_user.extra_data = extra_data
+            social_user.save()
\ No newline at end of file