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