Closed sawohnmarshwe closed 1 year ago
Hi @sawohnmarshwe,
Unfortunately, drf-social-oauth2 is not able to handle cases where the email is not equal. The user is identified by the email address. A different email address is understood as a completely different user.
@sawohnmarshwe just reiterating here. You can associate multiple accounts where the email is equal by setting social_core.pipeline.social_auth.associate_by_email in your pipeline workflow. It's not possible where the email address is not the same because each backend returns their own username to you, therefore, this type of validation would not be possible.
I'm trying to associate user with multiple social accounts in Django Rest Framework. After user login, user can associate with social accounts (it doesn't matter same email or different email). Now I am using the library drf-social-oauth2. I have done signIn/singUp part. According to Social_Auth_Pipeline [https://python-social-auth.readthedocs.io/en/latest/pipeline.html] I added this code to associate user
SOCIAL_AUTH_PIPELINE = ( 'social_core.pipeline.social_auth.social_details', 'social_core.pipeline.social_auth.social_uid', 'social_core.pipeline.social_auth.auth_allowed', 'social_core.pipeline.social_auth.social_user', 'social_core.pipeline.user.get_username', 'social_core.pipeline.social_auth.associate_by_email', 'social_core.pipeline.user.create_user', 'social_core.pipeline.social_auth.associate_user', 'social_core.pipeline.social_auth.load_extra_data', 'social_core.pipeline.user.user_details', )
The endpoint "http://localhost:8000/auth/convert-token" can handle the singin/singup using social auth.(eg. Facebook, Google) social_core.pipeline.social_auth.associate_by_email managed to associate the user if same email.My Question is How can I connect/associate Social Accounts (* different email/same email) with current login user using drf_social_oauth2?
Do I need to add field in user table to associate? OR Do I need to add something to setting.py?... Please advise me. Thank you.