Skip to content

Commit

Permalink
bug (social_auth): Handle duplicate users
Browse files Browse the repository at this point in the history
- generate unique username identifiers for google, facebook and twitter.
- ensure that users from different social networks with same username can login

[Fixes  #160346412]
  • Loading branch information
reiosantos authored and Innocent Asiimwe committed Sep 8, 2018
1 parent e048e5b commit fa2d61f
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions authors/apps/social_auth/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,9 @@ def validate_auth_token(self, auth_token) -> object:
)
user_id = user_info['sub']

name = user_info['name'] if 'name' in user_info.keys() else user_info['email']
keys = user_info.keys()
email = user_info['email'] if 'email' in user_info.keys() else user_info['name']
name = "{0}_{1}".format(user_info['name'], user_id) if 'name' in keys else 'noname_{0}'.format(user_id)

return create_user_and_return_token(user_id=user_id, email=email, name=name)

Expand Down Expand Up @@ -64,8 +65,10 @@ def validate_auth_token(self, auth_token):
)

user_id = user_info['id']
keys = user_info.keys()

name = user_info['name'] if 'name' in user_info.keys() else user_info['email']
email = user_info['email'] if 'email' in user_info.keys() else user_info['name']
email = "{0}_{1}".format(user_id, user_info['email']) if 'email' in keys else "{0}_no@email".format(user_id)

name = "{0}_{1}".format(user_info['name'], user_id) if 'name' in keys else 'noname_{0}'.format(user_id)

return create_user_and_return_token(user_id=user_id, email=email, name=name)

0 comments on commit fa2d61f

Please sign in to comment.