Ejemplo n.º 1
0
    def _logout(self):
        logger.debug('user logout')
        try:
            session = UserSession(flask.session)
        except UninitialisedSession as e:
            logger.info('user was already logged out, doing nothing')
            return None

        id_token_jwt = session.id_token_jwt
        client = self.clients[session.current_provider]
        session.clear()

        if client.provider_end_session_endpoint:
            flask.session['end_session_state'] = rndstr()

            end_session_request = EndSessionRequest(
                id_token_hint=id_token_jwt,
                post_logout_redirect_uri=self._get_post_logout_redirect_uri(
                    client),
                state=flask.session['end_session_state'])

            logger.debug('send endsession request: %s',
                         end_session_request.to_json())

            return redirect(
                end_session_request.request(
                    client.provider_end_session_endpoint), 303)
        return None
Ejemplo n.º 2
0
    def _logout(self):
        logger.debug('user logout')
        id_token_jwt = flask.session['id_token_jwt']
        flask.session.clear()

        if 'end_session_endpoint' in self.client.provider_info:
            flask.session['end_session_state'] = rndstr()
            end_session_request = EndSessionRequest(
                id_token_hint=id_token_jwt,
                post_logout_redirect_uri=self.
                client_registration_info['post_logout_redirect_uris'][0],
                state=flask.session['end_session_state'])
            logger.debug('send endsession request: %s',
                         end_session_request.to_json())
            return redirect(
                end_session_request.request(
                    self.client.provider_info['end_session_endpoint']), 303)

        return None
Ejemplo n.º 3
0
    def _logout(self):
        logger.debug('user logout')
        session = UserSession(flask.session)
        id_token_jwt = session.id_token_jwt
        client = self.clients[session.current_provider]
        session.clear()

        if client.provider_end_session_endpoint:
            flask.session['end_session_state'] = rndstr()

            end_session_request = EndSessionRequest(
                id_token_hint=id_token_jwt,
                post_logout_redirect_uri=self._get_post_logout_redirect_uri(),
                state=flask.session['end_session_state'])

            logger.debug('send endsession request: %s',
                         end_session_request.to_json())

            return redirect(
                end_session_request.request(
                    client.provider_end_session_endpoint), 303)
        return None