authentik.stages.user_logout.stage
Logout stage logic
1"""Logout stage logic""" 2 3from django.contrib.auth import logout 4from django.dispatch import Signal 5from django.http import HttpRequest, HttpResponse 6from structlog.stdlib import get_logger 7 8from authentik.flows.stage import StageView 9 10LOGGER = get_logger() 11 12# Custom signal for handling 13# front-channel logouts 14flow_pre_user_logout = Signal() 15 16 17class UserLogoutStageView(StageView): 18 """Logout stage that logs out the user""" 19 20 def dispatch(self, request: HttpRequest) -> HttpResponse: 21 """Log out user and send pre-logout signal""" 22 23 # This signal is for handling SAML front-channel logouts 24 flow_pre_user_logout.send( 25 sender=self.__class__, request=request, user=request.user, executor=self.executor 26 ) 27 28 LOGGER.debug( 29 "Logged out", 30 user=request.user, 31 flow_slug=self.executor.flow.slug, 32 ) 33 logout(self.request) 34 35 return self.executor.stage_ok()
LOGGER =
<BoundLoggerLazyProxy(logger=None, wrapper_class=None, processors=None, context_class=None, initial_values={}, logger_factory_args=())>
flow_pre_user_logout =
<django.dispatch.dispatcher.Signal object>
18class UserLogoutStageView(StageView): 19 """Logout stage that logs out the user""" 20 21 def dispatch(self, request: HttpRequest) -> HttpResponse: 22 """Log out user and send pre-logout signal""" 23 24 # This signal is for handling SAML front-channel logouts 25 flow_pre_user_logout.send( 26 sender=self.__class__, request=request, user=request.user, executor=self.executor 27 ) 28 29 LOGGER.debug( 30 "Logged out", 31 user=request.user, 32 flow_slug=self.executor.flow.slug, 33 ) 34 logout(self.request) 35 36 return self.executor.stage_ok()
Logout stage that logs out the user
def
dispatch( self, request: django.http.request.HttpRequest) -> django.http.response.HttpResponse:
21 def dispatch(self, request: HttpRequest) -> HttpResponse: 22 """Log out user and send pre-logout signal""" 23 24 # This signal is for handling SAML front-channel logouts 25 flow_pre_user_logout.send( 26 sender=self.__class__, request=request, user=request.user, executor=self.executor 27 ) 28 29 LOGGER.debug( 30 "Logged out", 31 user=request.user, 32 flow_slug=self.executor.flow.slug, 33 ) 34 logout(self.request) 35 36 return self.executor.stage_ok()
Log out user and send pre-logout signal