In my flutter application, I store JWT using flutter_secure_storage. And I need to send the token every API request.
QUESTION1 If I access flutter_secure_storage every API request like below, there are any performance or security problems? I worry about to be await for access flutter_secure_storage.
Future<http.Response> getRequest(String url) async {
String token = await FlutterSecureStorage().read(key: 'token');
return await http.get(url, headers: {'token': token});
}
QUESTION2 Is it a good way to create a singleton class which has a token like below? In the code, I don't access flutter_secure_storage every API request. So I think the performance improve a little.
// singleton class which has token.
class Auth {
final String _token;
String get token => _token;
static Auth _instance;
factory Auth() => _instance;
Auth._init(this._token);
static Future<void> create() async {
String token = await FlutterSecureStorage().read(key: 'token');
_instance = Auth._init(token);
}
}
// initialize singleton class in main
void main() async {
await Auth.create();
runApp(MyApp());
}
// able to get the token anywhere without await
Future<http.Response> getRequest(String url) async {
String token = Auth().token;
return await http.get(url, headers: {'token': token});
}
Please tell me best way.