繁体   English   中英

如何使用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上“注销”。 例如,即使我打开具有“ @login_required”修饰符的页面(视图),也无法打开该页面。 但是,我无法“注销” facebook本身。 例如,当我单击“使用Facebook登录”时,无需登录Facebook页面就可以登录Facebook,而当我访问Facebook时,我的墙就会出现。

我找到了使用PHP的方法,

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

但是,如何使用Python3和Django1.9通过Web APP注销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上登录。 之后,社交网站会调用您的URL或方法之一,以告诉您该用户已通过身份验证。 您的服务器或代码永远不会参与此登录过程,因此您不会干扰它或注销用户。

我认为您无法使用python注销用户。 另请参阅这篇文章

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM