2013-08-11 3 views
0

The screenshot of the errorДжанго - Social_Auth - Facebook Выход - NotAllowedToDisconnect

Я использовал Джанго пакет social_auth реализовать facebook логин на моем сайте. Я могу правильно войти в систему и получить все данные. Но я не могу выйти из системы.

Я не использую django.user.login и выход из системы. Я использую socialauth_begin и socialauth_disconnect

Я могу войти, перейти в социальный конвейер, получить необходимую информацию, но я не могу выйти из системы. Каково решение этой проблемы?

Когда я нажимаю на "Выход" в Logout я получаю следующее сообщение об ошибке

NotAllowedToDisconnect at /tomonotomo/auth/disconnect/facebook/ 
No exception supplied 
Request Method: GET 
Request URL: http://localhost:8000/tomonotomo/auth/disconnect/facebook/ 
Django Version: 1.5.1 
Exception Type: NotAllowedToDisconnect 
Exception Location: /tmp/guest-onyOH9/pratik/virtualenv-1.10/tomonotomo/local/lib/python2.7/site-packages/social_auth/backends/__init__.py in disconnect, line 435 
Python Executable: /tmp/guest-onyOH9/pratik/virtualenv-1.10/tomonotomo/bin/python2.7 
Python Version: 2.7.3 
Python Path:  
['/tmp/guest-onyOH9/pratik/tomonotomo_project', 
'/tmp/guest-onyOH9/Desktop/pycharm-2.7.3/helpers/pydev', 
'/tmp/guest-onyOH9/pratik/tomonotomo_project', 
'/tmp/guest-onyOH9/pratik/virtualenv-1.10/tomonotomo/lib/python2.7', 
'/tmp/guest-onyOH9/pratik/virtualenv-1.10/tomonotomo/lib/python2.7/plat-linux2', 
'/tmp/guest-onyOH9/pratik/virtualenv-1.10/tomonotomo/lib/python2.7/lib-tk', 
'/tmp/guest-onyOH9/pratik/virtualenv-1.10/tomonotomo/lib/python2.7/lib-old', 
'/tmp/guest-onyOH9/pratik/virtualenv-1.10/tomonotomo/lib/python2.7/lib-dynload', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-linux2', 
'/usr/lib/python2.7/lib-tk', 
'/tmp/guest-onyOH9/pratik/virtualenv-1.10/tomonotomo/local/lib/python2.7/site-packages', 
'/tmp/guest-onyOH9/pratik/virtualenv-1.10/tomonotomo/lib/python2.7/site-packages'] 
Server time: Sat, 10 Aug 2013 22:27:42 -0500 

Настройки у меня есть это:

AUTHENTICATION_BACKENDS = (
    'social_auth.backends.facebook.FacebookBackend', 
    'django.contrib.auth.backends.ModelBackend', 
) 

FACEBOOK_EXTENDED_PERMISSIONS= ['email', 'user_birthday'] 

SOCIAL_AUTH_PIPELINE = (
    'social_auth.backends.pipeline.social.social_auth_user', 
    'social_auth.backends.pipeline.associate.associate_by_email', 
    'social_auth.backends.pipeline.user.get_username', 
    'social_auth.backends.pipeline.user.create_user',  

    'tomonotomo.social_auth_pipeline.create_custom_user', 

    'social_auth.backends.pipeline.social.associate_user', 
    'social_auth.backends.pipeline.user.update_user_details', 
) 

SOCIAL_AUTH_CREATE_USERS = True 
SOCIAL_AUTH_FORCE_RANDOM_USERNAME = False 
SOCIAL_AUTH_DEFAULT_USERNAME = 'socialauth_user' 
SOCIAL_AUTH_ENABLED_BACKENDS = ('facebook',) 
SOCIAL_AUTH_COMPLETE_URL_NAME = 'socialauth_complete' 
SOCIAL_AUTH_ASSOCIATE_URL_NAME = 'socialauth_associate_complete' 
SOCIAL_AUTH_ASSOCIATE_BY_EMAIL = True 
SOCIAL_AUTH_ERROR_KEY = 'socialauth_error' 
SOCIAL_AUTH_REDIRECT_IS_HTTPS = False 

LOGIN_URL = '/tomonotomo/login/' 
LOGIN_REDIRECT_URL = '/tomonotomo/' 
LOGIN_ERROR_URL = '/tomonotomo/login-error/' 

Пожалуйста, помогите. Благодаря

код Раньше я был Вход:

<a href="{% url "socialauth_begin" "facebook" %}" class="btn"><h3 style="color:white">Connect via Facebook</h3></a> 
+1

Disconnect не то же самое, чем выход из системы, отключить вместо этого будет удалить связь с социальными счетами и текущим пользователем , В следующий раз, когда пользователь попытается войти в систему с помощью Facebook acccount, в вашем приложении будет создан новый пользовательский экземпляр. Вы должны использовать механизм выхода, встроенный в Django (или реализовать аналогичный). – omab

+0

Спасибо, сэр. В этом есть смысл. –

ответ

0

Просто у меня такая же проблема, но с щебет.

Эта ошибка возникает, поскольку у пользователя нет другого способа подключения/отключения от системы, и API каким-то образом считает, что это было бы опасно.

Как решить проблему звал пользовательскую форму выхода из системы, как в примере:

https://github.com/omab/django-social-auth/blob/master/example/app/views.py#L39

+0

Пожалуйста, включите пример inline, а не ссылку на то, что может измениться в будущем. – ams

+0

Пожалуйста, посмотрите комментарий выше на @omab. Решил проблему для меня. Спасибо, в любом случае. –

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