Resolves #59 Storing token in secure storage
This commit is contained in:
parent
b7d5a53e86
commit
5ebd25e0d1
@ -64,8 +64,15 @@ class HomeAssistant {
|
||||
hostname = "$domain:$port";
|
||||
_webSocketAPIEndpoint = "${prefs.getString('hassio-protocol')}://$domain:$port/api/websocket";
|
||||
httpWebHost = "${prefs.getString('hassio-res-protocol')}://$domain:$port";
|
||||
//_password = prefs.getString('hassio-password');
|
||||
_token = prefs.getString('hassio-token');
|
||||
final storage = new FlutterSecureStorage();
|
||||
try {
|
||||
_token = await storage.read(key: "hacl_llt");
|
||||
} catch (e) {
|
||||
Logger.e("Cannt read secure storage. Need to relogin.");
|
||||
_token = null;
|
||||
await storage.delete(key: "hacl_llt");
|
||||
}
|
||||
_useLovelace = prefs.getBool('use-lovelace') ?? true;
|
||||
if ((domain == null) || (port == null) ||
|
||||
(domain.length == 0) || (port.length == 0)) {
|
||||
@ -269,7 +276,8 @@ class HomeAssistant {
|
||||
Logger.d("Logging out...");
|
||||
_token = null;
|
||||
_tempToken = null;
|
||||
await SharedPreferences.getInstance().then((prefs) => prefs.remove("hassio-token"));
|
||||
final storage = new FlutterSecureStorage();
|
||||
await storage.delete(key: "hacl_llt");
|
||||
ui?.clear();
|
||||
entities?.clear();
|
||||
}
|
||||
@ -294,7 +302,8 @@ class HomeAssistant {
|
||||
Logger.d("Got long-lived token: ${data['result']}");
|
||||
_token = data['result'];
|
||||
_tempToken = null;
|
||||
SharedPreferences.getInstance().then((prefs) => prefs.setString("hassio-token", _token));
|
||||
final storage = new FlutterSecureStorage();
|
||||
storage.write(key: "hacl_llt", value: _token);
|
||||
} else {
|
||||
logout();
|
||||
Logger.e("Error getting long-lived token: ${data['error'].toString()}");
|
||||
|
@ -19,6 +19,7 @@ import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:flutter_custom_tabs/flutter_custom_tabs.dart';
|
||||
import 'package:firebase_messaging/firebase_messaging.dart';
|
||||
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
|
||||
part 'entity_class/const.dart';
|
||||
part 'entity_class/entity.class.dart';
|
||||
|
@ -141,6 +141,13 @@ packages:
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.2.0"
|
||||
flutter_secure_storage:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_secure_storage
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.2.0"
|
||||
flutter_svg:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -22,6 +22,7 @@ dependencies:
|
||||
flutter_custom_tabs: ^0.6.0
|
||||
firebase_messaging: ^4.0.0+1
|
||||
flutter_webview_plugin: ^0.3.1
|
||||
flutter_secure_storage: ^3.2.0
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
Reference in New Issue
Block a user