2014-03-05 2 views
2

Использование django allauth пользователи могут подписаться на мой сайт, используя Facebook. Они должны завершить процесс регистрации, который создает учетную запись в моей системе.Django allauth рекомендуется удалять социальную учетную запись

После регистрации у пользователя появляется необходимость отключиться от Facebook, но останется членом моего сайта.

В настоящее время у меня есть представление, которое вручную удаляет социальную учетную запись из БД, но я замечаю проблемы, в результате чего, если вы попытаетесь добавить свою социальную учетную запись снова, вы должны снова зарегистрироваться, что невозможно (поскольку учетная запись существует). Для того, чтобы добавить социальные счета снова я просто с помощью:

{% load socialaccount %} 
<a href="{% provider_login_url "facebook" method="oauth2" %}">Facebook OAuth2</a> 

Я прочитал the docs и упоминает в поддерживаемых потоках:

Отсоединение социального счета

Однако я могу» t найти дополнительную информацию, а URL-адрес «удалить» в urls.py

У меня есть подозрение, что это связано с тем, что пользователь регистрируется при попытке подключить учетную запись, когда я пытаюсь связать свою учетную запись FB во время ее выхода из системы (используя ту же самую ссылку {% socialaccount%}), она работает нормально (дополнительная регистрация не требуется)

Мой вопрос в том, рекомендуемый способ удаления социальных счетов?

ответ

4

Django-allauth поставляется с видом (allauth.socialaccount.views.ConnectionsView), который обрабатывает отключение социальных счетов. Вы можете использовать это напрямую или просто посмотреть, как это работает, и сделать свою собственную версию. Логика в allauth.socialaccount.forms.DisconnectForm:

from allauth.socialaccount import signals 

def save(self): 
    account = self.cleaned_data['account'] 
    account.delete() 
    signals.social_account_removed.send(sender=SocialAccount, 
             request=self.request, 
             socialaccount=account) 

Чтобы добавить социальную учетную запись к существующей учетной записи, вы должны использовать process="connect" с provider_login_url (и пользователю необходимо войти в свой сайт, когда они нажимают на него). Поэтому измените свою ссылку на:

<a href="{% provider_login_url "facebook" process="connect" method="oauth2" %}">Facebook OAuth2</a> 
+0

0 = 0 0 – sidarcy

+0

Знаете ли вы, как настроить URL-адрес для перехода к процессу = "connect"? После подключения учетной записи он перенаправляет с страницы FB на «views.ConnectionsView». Есть ли стандартный способ изменить этот URL-адрес на то, что мне нужно? – abcdn

Смежные вопросы