From e083e8abc6622ade61fbb51a9364c1c92e7f1f9e Mon Sep 17 00:00:00 2001
From: Michael Weimann <mail@michael-weimann.eu>
Date: Mon, 27 Aug 2018 12:18:14 +0200
Subject: [PATCH] Clears the local storage after logout

Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
---
 core/Controller/LoginController.php | 5 ++++-
 core/js/login.js                    | 6 ++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/core/Controller/LoginController.php b/core/Controller/LoginController.php
index 64899304d78..5697430051f 100644
--- a/core/Controller/LoginController.php
+++ b/core/Controller/LoginController.php
@@ -130,7 +130,10 @@ class LoginController extends Controller {
 		}
 		$this->userSession->logout();
 
-		$response = new RedirectResponse($this->urlGenerator->linkToRouteAbsolute('core.login.showLoginForm'));
+		$response = new RedirectResponse($this->urlGenerator->linkToRouteAbsolute(
+			'core.login.showLoginForm',
+			['clear' => true] // this param the the code in login.js may be removed when the "Clear-Site-Data" is working in the browsers
+		));
 		$response->addHeader('Clear-Site-Data', '"cache", "storage", "executionContexts"');
 		return $response;
 	}
diff --git a/core/js/login.js b/core/js/login.js
index 64be29bfec6..8ef76c5717b 100644
--- a/core/js/login.js
+++ b/core/js/login.js
@@ -41,4 +41,10 @@ $(document).ready(function() {
 	$('form[name=login]').submit(OC.Login.onLogin);
 
 	$('#remember_login').click(OC.Login.rememberLogin);
+
+	var clearParamRegex = new RegExp('clear=1');
+	if (clearParamRegex.test(window.location.href)) {
+		window.localStorage.clear();
+		window.sessionStorage.clear();
+	}
 });
-- 
GitLab