Browse Source

delete token from server on logout

Neeraj Gupta 4 years ago
parent
commit
d14cbb7d97
2 changed files with 17 additions and 0 deletions
  1. 2 0
      lib/core/configuration.dart
  2. 15 0
      lib/services/user_service.dart

+ 2 - 0
lib/core/configuration.dart

@@ -22,6 +22,7 @@ import 'package:photos/services/collections_service.dart';
 import 'package:photos/services/favorites_service.dart';
 import 'package:photos/services/favorites_service.dart';
 import 'package:photos/services/memories_service.dart';
 import 'package:photos/services/memories_service.dart';
 import 'package:photos/services/sync_service.dart';
 import 'package:photos/services/sync_service.dart';
+import 'package:photos/services/user_service.dart';
 import 'package:shared_preferences/shared_preferences.dart';
 import 'package:shared_preferences/shared_preferences.dart';
 import 'package:photos/utils/crypto_util.dart';
 import 'package:photos/utils/crypto_util.dart';
 
 
@@ -103,6 +104,7 @@ class Configuration {
     }
     }
     await _preferences.clear();
     await _preferences.clear();
     await _secureStorage.deleteAll();
     await _secureStorage.deleteAll();
+    await UserService.instance.logout();
     _key = null;
     _key = null;
     _cachedToken = null;
     _cachedToken = null;
     _secretKey = null;
     _secretKey = null;

+ 15 - 0
lib/services/user_service.dart

@@ -90,6 +90,21 @@ class UserService {
     }
     }
   }
   }
 
 
+  Future<bool> logout() async {
+    try {
+      final response = await _dio.post(
+        _config.getHttpEndpoint() + "/users/logout",
+        options: Options(headers: {
+          "X-Auth-Token": _config.getToken(),
+        }),
+      );
+      return response != null && response.statusCode == 200;
+    } on DioError catch (e) {
+      _logger.warning(e);
+      return false;
+    }
+  }
+
   Future<void> verifyEmail(BuildContext context, String ott) async {
   Future<void> verifyEmail(BuildContext context, String ott) async {
     final dialog = createProgressDialog(context, "please wait...");
     final dialog = createProgressDialog(context, "please wait...");
     await dialog.show();
     await dialog.show();