49 lines
1.0 KiB
Dart
49 lines
1.0 KiB
Dart
import 'dart:async';
|
|
|
|
import 'package:flutter/widgets.dart';
|
|
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
|
|
|
import '../log/log.dart';
|
|
|
|
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");
|
|
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("");
|
|
}
|
|
} else {
|
|
completer.complete(_tokenval);
|
|
}
|
|
return completer.future;
|
|
}
|
|
|
|
void setToken(String token) {
|
|
_tokenval = token;
|
|
_storage.write(key: 'jwt', value: token);
|
|
}
|
|
|
|
Token._();
|
|
}
|