save token and settings also in sqlite db

This commit is contained in:
2022-12-01 00:50:55 +01:00
parent 96b8d172ff
commit 7f039396aa
17 changed files with 142 additions and 290 deletions

View File

@ -2,6 +2,7 @@ import 'dart:async';
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'token.dart';
class TokenException implements Exception {
@ -11,7 +12,7 @@ class TokenException implements Exception {
class API {
static Future<String> query(
String apinode, String action, Object payload) async {
final t = await Token.getInstance().getToken();
final t = await getToken();
if (t != null) {
final resp = await http.post(
Uri.parse(t.domain + '/api/$apinode/$action'),

View File

@ -1,60 +1,19 @@
import 'dart:async';
import 'package:flutter/widgets.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import '../log/log.dart';
import 'package:openmediacentermobile/db/settings_db.dart';
class TokenT {
String token;
String domain;
String videoPath;
TokenT(this.token, this.domain, this.videoPath);
TokenT(this.token, this.domain);
}
class Token {
static final Token _token = Token._();
final _storage = const FlutterSecureStorage();
String _tokenval = "";
String _domain = "";
String _vPath = "";
static Token getInstance() {
return _token;
Future<TokenT?> getToken() async {
final settings = await SettingsDB.getInstance().getSettings();
if (settings.token == "" || settings.domain == "") {
return null;
} else {
return TokenT(settings.token, settings.domain);
}
Future<TokenT?> getToken() async {
if (_tokenval == "" || _domain == "" || _vPath == "") {
Log.d("reading token store");
WidgetsFlutterBinding.ensureInitialized();
final token = await _storage.read(key: 'jwt');
final domain = await _storage.read(key: 'domain');
final vPath = await _storage.read(key: 'videoPath');
// check if value is defined in phone store
if (token != null && domain != null && vPath != null) {
_tokenval = token;
_domain = domain;
return TokenT(token, domain, vPath);
} else {
Log.d("no token defined");
return null;
}
} else {
return TokenT(_tokenval, _domain, _vPath);
}
}
void setToken(String token, String domain, String videoPath) {
_tokenval = token;
_domain = domain;
_vPath = videoPath;
_storage.write(key: 'jwt', value: token);
_storage.write(key: 'domain', value: domain);
_storage.write(key: 'videoPath', value: videoPath);
}
Token._();
}