From d3e34d57e0f90d6a1eb07f621145e73c6e13d64d Mon Sep 17 00:00:00 2001 From: PartyDonut <42371342+PartyDonut@users.noreply.github.com> Date: Sat, 2 Nov 2024 09:56:01 +0100 Subject: [PATCH] fix: Unable to log-out user with incorrect/old token (#104) Co-authored-by: PartyDonut --- lib/providers/auth_provider.dart | 17 +++++------------ lib/providers/shared_provider.dart | 8 ++++++-- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/lib/providers/auth_provider.dart b/lib/providers/auth_provider.dart index e2aec4e..d8b5491 100644 --- a/lib/providers/auth_provider.dart +++ b/lib/providers/auth_provider.dart @@ -1,6 +1,6 @@ -import 'dart:developer'; - import 'package:chopper/chopper.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; + import 'package:fladder/models/account_model.dart'; import 'package:fladder/models/credentials_model.dart'; import 'package:fladder/models/login_screen_model.dart'; @@ -13,7 +13,6 @@ import 'package:fladder/providers/shared_provider.dart'; import 'package:fladder/providers/sync_provider.dart'; import 'package:fladder/providers/user_provider.dart'; import 'package:fladder/providers/views_provider.dart'; -import 'package:flutter_riverpod/flutter_riverpod.dart'; final authProvider = StateNotifierProvider((ref) { return AuthNotifier(ref); @@ -77,15 +76,9 @@ class AuthNotifier extends StateNotifier { } Future logOutUser() async { - if (ref.read(userProvider) != null) { - final response = await api.sessionsLogoutPost(); - if (response.isSuccessful) { - log('Logged out'); - } - state = state.copyWith(tempCredentials: CredentialsModel.createNewCredentials()); - await ref.read(sharedUtilityProvider).removeAccount(ref.read(userProvider)); - return response; - } + final currentUser = ref.read(userProvider); + state = state.copyWith(tempCredentials: CredentialsModel.createNewCredentials()); + await ref.read(sharedUtilityProvider).removeAccount(currentUser); clearAllProviders(); return null; } diff --git a/lib/providers/shared_provider.dart b/lib/providers/shared_provider.dart index ecc7a5d..e3a6bac 100644 --- a/lib/providers/shared_provider.dart +++ b/lib/providers/shared_provider.dart @@ -64,8 +64,12 @@ class SharedUtility { Future removeAccount(AccountModel? account) async { if (account == null) return null; - //Try to logout user - await ref.read(userProvider.notifier).forceLogoutUser(account); + try { + //Try to logout user + await ref.read(userProvider.notifier).forceLogoutUser(account); + } catch (e) { + log('Unable to log-out user forcing anyway $e'); + } //Remove from local database final savedAccounts = getAccounts();