Как я могу выйти из Facebook в приложении Django с помощью python-social-auth?

Извините, у меня вопрос. Я написал скрипт аутентификации facebook с помощью Django и python-social-auth. Я мог «выйти» из своего веб-приложения. Например, даже если я открываю страницу (представление) с декоратором «@login_required», я не могу открыть страницу. Но я не мог «выйти» из Facebook. Например, когда я нажимаю «Войти через Facebook», я могу войти в Facebook, не посещая страницу Facebook, а когда я захожу в Facebook, появляется моя стена.

Я нашел метод с PHP,

function logout() {
    $this->session->sess_destroy();
    $this->facebook->destroySession();
    redirect('index/', 'location');
}

Но как я могу выйти из Facebook через свое веб-приложение с Python3 и Django1.9?

Спасибо.

просмотры.py

from django.shortcuts import render
from django.shortcuts import redirect
from django.contrib.auth import logout as auth_logout
from django.contrib.auth.decorators import login_required
from django.template.context import RequestContext


def login(request):
    context = RequestContext(request, {
        'request': request, 'user': request.user})
    return render(request, 'myapp/login/login.html' context_instance=context)


@login_required(login_url='/')
def home(request):
    return render(request, 'myapp/login/home.html')


def logout(request):
    auth_logout(request)
    return redirect('/')

person yamachan    schedule 25.02.2016    source источник


Ответы (2)


Я думаю, вы не можете выйти из системы с помощью python. См. также этот сообщение

Но вы можете легко выйти из системы с помощью Javascript SDK:

<a href="/logout" onclick="FB.logout();">Logout</a> 
person ilse2005    schedule 25.02.2016
comment
Спасибо, ilse2005. Вместо этого я буду использовать JavaScript. Спасибо большое. - person yamachan; 25.02.2016

Я не использовал python-social-auth, но технически это невозможно.

Когда пользователь входит в систему через Outh2.0, он перенаправляется на URL-адрес социального сайта, где пользователь входит на этот социальный сайт. После этого один из ваших URL-адресов или методов вызывается социальным сайтом, чтобы сообщить вам, что пользователь аутентифицирован. Ваши серверы или код никогда не участвуют в этом процессе входа в систему, поэтому вы не можете вмешиваться в него и выходить из системы.

person Muhammad Tahir    schedule 25.02.2016
comment
Спасибо за совет, Мухаммад Тахир. Я понял. Вместо этого я реализую SDK. Спасибо большое. - person yamachan; 25.02.2016