django_openid_auth가 내 장고 프로젝트에서 성공적으로 작동하고 있으며 이제 Google 계정으로 로그인 할 수 있습니다. 내가 알아낼 수없는 것은 로그 아웃하는 방법입니다. 표준 django.contrib.auth.views.logout
보기는 사용자를 로그 아웃하지만 인증을 요구하는 페이지를 방문하면 프롬프트없이 사용자를 다시 인증합니다. 사용자를 완전히 로그 아웃하려면 어떻게해야합니까?django 및 django_openid_auth를 사용하여 로그 아웃
2
A
답변
1
OpenId의 목적 중 하나는 로그인 프로세스를 간소화하는 것입니다. 발생하는 행동은 절대적으로 정확합니다.. 처음으로 Google 계정으로 응용 프로그램에 로그인하면 OpenId 공급자 (Google)가 응용 프로그램에 데이터를 보낼 수있었습니다. 데이터가 여전히 데이터베이스에 있으므로 액세스 허용을 위해 다시 묻지 않아도됩니다.
그래도 다시 묻는 메시지가 나타나면 수동으로 데이터베이스의 데이터를 지워야합니다. 당신은 사용자 정의 로그 아웃 뷰를 만들거나 신호 인프라를 사용하여 추가하여이 작업을 수행 할 수있는 작업은 다음과 같습니다
from django.contrib.auth.signals import user_logged_out
@receiver(user_logged_out)
def clear_openid_data(sender, user,**kwargs):
# wipe out data according to models in django_openid_auth..
이
장고 1.3 이후 user_logged_out를 사용할 수 있는지 그것은 언급 할 가치가을 signals.py하기