diff --git a/deadlock-plugins/deadlock-extension/package.json b/deadlock-plugins/deadlock-extension/package.json
index ea003cfaa72af8dad23bf96a2a4091b181d18488..1a35fffc1c8e1db82b442f168cd737a636e06ee6 100644
--- a/deadlock-plugins/deadlock-extension/package.json
+++ b/deadlock-plugins/deadlock-extension/package.json
@@ -37,6 +37,11 @@
 				"command": "deadlock.chooseMissionWorkdir",
 				"title": "Choose mission workdir",
 				"category": "Deadlock Coding"
+			},
+			{
+				"command": "deadlock.clear",
+				"title": "Clear cache",
+				"category": "Deadlock Coding"
 			}
 		],
 		"viewsContainers": {
diff --git a/deadlock-plugins/deadlock-extension/src/core/commandHandler.ts b/deadlock-plugins/deadlock-extension/src/core/commandHandler.ts
index 8e042408c9f48529d232066e87e16e8811147c41..73999d209c0c0af9da3239d4e5333e446d3026a4 100644
--- a/deadlock-plugins/deadlock-extension/src/core/commandHandler.ts
+++ b/deadlock-plugins/deadlock-extension/src/core/commandHandler.ts
@@ -13,6 +13,7 @@ export class CommandHandler {
 	initCommandHandler() {
 		commands.registerCommand(CHOOSE_MISSION_WORKDIR_COMMAND.cmd, this.chooseMissionWorkdir.bind(this));
 		commands.registerCommand(AUTHENTICATE_COMMAND.cmd, this.parent.authenticate.bind(this.parent));
+		commands.registerCommand(CLEAR_COMMAND.cmd, this.parent.clear.bind(this.parent));
 	}
 
 	async chooseMissionWorkdir() {
@@ -38,3 +39,4 @@ export class CommandHandler {
 
 export const CHOOSE_MISSION_WORKDIR_COMMAND = new Command('Choose mission workdir', 'deadlock.chooseMissionWorkdir');
 export const AUTHENTICATE_COMMAND = new Command('Authenticate', 'deadlock.authenticate');
+export const CLEAR_COMMAND = new Command('Clear', 'deadlock.clear');
diff --git a/deadlock-plugins/deadlock-extension/src/core/controller.ts b/deadlock-plugins/deadlock-extension/src/core/controller.ts
index 7a8396c873e7c110d5096ac4dc13b07760ddc939..af61def67cad6c946d7113adedd94ed8701dd199 100644
--- a/deadlock-plugins/deadlock-extension/src/core/controller.ts
+++ b/deadlock-plugins/deadlock-extension/src/core/controller.ts
@@ -44,12 +44,18 @@ export default class Controller {
 		this.gettingStartedView.isAlreadyConnected = !!(await exensionStorage.getAccessToken());
 	}
 
+	async clear() {
+		const exensionStorage = ExtensionStore.getInstance();
+		await exensionStorage.clear();
+		this.gettingStartedView.isAlreadyConnected = false;
+	}
+
 	async authenticate() {
 		const tokens = await this.connection.getToken({ openLink: Controller.openBrowserWithUrl });
 		const exensionStorage = ExtensionStore.getInstance();
 		await exensionStorage.setAccessToken(tokens.accessToken);
 		await exensionStorage.setRefreshToken(tokens.refreshToken);
-		this.gettingStartedView.isAlreadyConnected = !!(await exensionStorage.getAccessToken());
+		this.gettingStartedView.isAlreadyConnected = true;
 	}
 	public static openBrowserWithUrl(url: string) {
 		vscode.commands.executeCommand('vscode.open', vscode.Uri.parse(url));
@@ -71,6 +77,8 @@ export default class Controller {
 				const { accessToken, refreshToken } = await this.connection.getToken({
 					openLink: Controller.openBrowserWithUrl,
 				});
+				extensionStore.setAccessToken(accessToken);
+				extensionStore.setRefreshToken(refreshToken);
 				vscode.window.showInformationMessage('Nouvelle connexion validée');
 			} else {
 				vscode.window.showInformationMessage('Déjà connecté: session récupérée');
diff --git a/deadlock-plugins/deadlock-extension/src/core/extensionStore.ts b/deadlock-plugins/deadlock-extension/src/core/extensionStore.ts
index 678434df6ecd77bfdbc72d8c3c58eabe2f8b7c7e..31d8236674ede35a695dddb94bd7b8d561bd188c 100644
--- a/deadlock-plugins/deadlock-extension/src/core/extensionStore.ts
+++ b/deadlock-plugins/deadlock-extension/src/core/extensionStore.ts
@@ -14,6 +14,16 @@ export default class ExtensionStore {
 		this.secretStorage = context.secrets;
 	}
 
+	public async clear() {
+		if (this.globalStorage.keys()) {
+			for (let key of this.globalStorage.keys()) {
+				this.globalStorage.update(key, undefined);
+			}
+		}
+		if (await this.secretStorage.get(StoreKey.AccessTokenKey)) this.secretStorage.delete(StoreKey.AccessTokenKey);
+		if (await this.secretStorage.get(StoreKey.RefreshTokenKey)) this.secretStorage.delete(StoreKey.RefreshTokenKey);
+	}
+
 	public static getInstance(): ExtensionStore {
 		if (!ExtensionStore.instance) {
 			throw new Error('ExtensionStore should be initiate with a storage first time');