如何使用 python-social-auth 在 Django APP 上注销 facebook 本身?

How can I logout facebook itself on Django APP with python-social-auth?

对不起,我有一个问题。 我用 Django 和 python-social-auth 编写了 facebook Auth 脚本。 我可以在我的 Web APP 上 "logout"。 例如,即使我打开一个带有“@login_required”装饰器的页面(视图),我也无法打开该页面。 但是,我无法 "logout" facebook 本身。 例如,当我点击"login with facebook"时,我可以在不访问facebook页面的情况下登录facebook,当我访问facebook时,我的墙出现了。

我找到了 PHP,

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

但是如何使用 Python3 和 Django1.9 通过我的网络应用程序注销 facebook?

谢谢。

views.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('/')

我没有使用过 python-social-auth,但从技术上讲你不能。

当用户通过 Outh2.0 登录时,用户将被定向到社交网站的 URL,用户在此处登录该社交网站。之后,社交网站调用您的 URL 或方法之一,告诉您用户已通过身份验证。您的服务器或代码永远不会参与此登录过程,因此您不能干扰它并注销用户。

我认为您无法使用 python 注销用户。另请参阅此 post

但是您可以使用 Javascript SDK 轻松注销用户:

<a href="/logout" onclick="FB.logout();">Logout</a>