OpenMediacenterMobileFlutter/lib/api/token.dart

49 lines
1.0 KiB
Dart
Raw Normal View History

2021-12-10 10:40:20 +00:00
import 'dart:async';
import 'package:flutter/widgets.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import '../log/log.dart';
2021-12-10 10:40:20 +00:00
class Token {
static final Token _token = Token._();
final _storage = const FlutterSecureStorage();
String _tokenval = "";
static Token getInstance() {
return _token;
}
Future<String?> _readToken() async {
Log.d("reading token store");
2021-12-10 10:40:20 +00:00
WidgetsFlutterBinding.ensureInitialized();
return _storage.read(key: 'jwt');
}
Future<String> getToken() async {
var completer = Completer<String>();
if (_tokenval == "") {
final token = await _readToken();
// check if value is defined in phone store
if (token != null) {
completer.complete(token);
} else {
Log.d("no token defined");
completer.complete("");
}
2021-12-10 10:40:20 +00:00
} else {
completer.complete(_tokenval);
}
return completer.future;
}
void setToken(String token) {
_tokenval = token;
_storage.write(key: 'jwt', value: token);
}
Token._();
}