【问题标题】:Logging out in Django Facebook?在 Django Facebook 中注销?
【发布时间】:2013-07-05 23:12:19
【问题描述】:
第一次使用 Django-facebook。
出于某种原因,如果我使用 Facebook 登录,但后来退出了我的 Facebook 帐户。我的应用程序使用默认的 Django 用户保持登录状态,会话令牌过期,因为“用户已注销”。如果我然后重新登录到 Facebook,Django 应用程序将保持“退出”Facebook。
在上述情况下,我尝试将@facebook_required_lazy 附加到我的视图函数的顶部,但没有效果。在这个用例中这个装饰器的预期行为是什么?该视图包含对 get_persistent_graph 的调用。
【问题讨论】:
标签:
python
django
django-facebook
【解决方案1】:
您的 Django 登录会话完全独立于您的 Facebook 登录会话。 Facebook 仅用于身份验证,即在登录时。但是登录会话是独立的,没有连接。因此,从 Facebook 注销根本不会影响您的 Django 会话。你还在Django上登录是正常的。
要从 Django 注销,您需要使用 Django 框架的 logout 方法,在模块 django.contrib.auth 中,例如使用这样的自定义注销方法:
from django.contrib.auth import logout as django_logout
def logout(request):
django_logout(request)
return some_other_view(request)