[英]Logout with python-social-auth
我正在涉足 Python Django Social Auth 使用 Twitter 身份驗證。
我可以登錄。
但是,當我嘗試使用django.contrib.auth.logout
時,它不會注銷。
登出的方法是什么?
謝謝。
你是想嘗試從Django應用程序注銷還是想“忘記”Twitter訪問? 通常,存儲twitter身份驗證令牌以便在下次用戶想要連接到Twitter時進行簡化登錄,因此用戶不必再次“接受”訪問。
如果您只想從Django auth系統注銷,那么使用django.contrib.auth.views.logout
視圖或創建自定義注銷視圖就足夠了。
要完全取消鏈接/斷開社交帳戶,您需要在social-auth中使用斷開連接功能。 您可以使用以下模板標記獲取斷開網址:
{% url "socialauth_disconnect" "backend-name" %}
有關更多信息,請參閱http://django-social-auth.readthedocs.org/en/v0.7.22/configuration.html#linking-in-your-templates 。
由於您已經允許您的應用訪問OAuth提供商,因此身份驗證提供商會記住該決定。 通常有兩種方法可以強制確認訪問權限:
{'approval_prompt': 'force'}
到GOOGLE_OAUTH2_AUTH_EXTRA_ARGUMENTS
設置即可。 你有注銷視圖嗎? 您需要有一個注銷視圖。
例:
from django.contrib.auth import logout
def logout_view(request):
logout(request)
# Redirect to a success page.
根據文檔, log out和disconnect之間是有區別的。 簡而言之,
從這個問題來看,我假設您仍然希望允許用戶將 Twitter 與該帳戶相關聯。 如果您想斷開連接,請檢查此答案。
要注銷用戶,您可以在 Django settings.py 中設置
LOGOUT_URL = "logout"
然后,在你的 urls.py
from django.urls import path
from django.contrib.auth import views as auth_views
urlpatterns = [
path("logout/", auth_views.LogoutView.as_view(template_name="registration/logged_out.html"), name="logout"),
]
然后,要注銷用戶,您可以在模板中使用類似
<a href="{% url 'logout' %}">Logout</a>
此外,您必須在appname/templates/registration/
中創建一個logged_out.html
文件,並在其中包含您希望注銷用戶看到的任何內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.