. * */ namespace Friendica\Module\Security; use Friendica\BaseModule; use Friendica\Core\Hook; use Friendica\Core\System; use Friendica\DI; use Friendica\Model\Profile; use Friendica\Security\TwoFactor; /** * Logout module */ class Logout extends BaseModule { /** * Process logout requests */ public static function init(array $parameters = []) { $visitor_home = null; if (remote_user()) { $visitor_home = Profile::getMyURL(); DI::cache()->delete('zrlInit:' . $visitor_home); } Hook::callAll("logging_out"); // Remove this trusted browser as it won't be able to be used ever again after the cookie is cleared if (DI::cookie()->get('trusted')) { $trustedBrowserRepository = new TwoFactor\Repository\TrustedBrowser(DI::dba(), DI::logger()); $trustedBrowserRepository->removeForUser(local_user(), DI::cookie()->get('trusted')); } DI::cookie()->clear(); DI::session()->clear(); if ($visitor_home) { System::externalRedirect($visitor_home); } else { info(DI::l10n()->t('Logged out.')); DI::baseUrl()->redirect(); } } }