Files
momo/lib/provider/token.dart

29 lines
700 B
Dart
Raw Normal View History

2023-02-06 23:45:56 +08:00
import 'package:flutter_riverpod/flutter_riverpod.dart';
2023-02-08 23:48:25 +08:00
import 'package:momo/request/http_client.dart';
2023-02-07 17:28:01 +08:00
import 'package:shared_preferences/shared_preferences.dart';
2023-02-06 23:45:56 +08:00
2023-02-08 17:20:16 +08:00
class TokenNotifier extends Notifier<String?> {
2023-02-06 23:45:56 +08:00
@override
2023-02-08 17:20:16 +08:00
String? build() {
2023-02-06 23:45:56 +08:00
return "";
}
2023-02-08 17:20:16 +08:00
setToken(String? token) {
2023-02-06 23:45:56 +08:00
state = token;
2023-02-08 23:48:25 +08:00
dio.options.headers["Authorization"] = token;
2023-02-07 17:28:01 +08:00
SharedPreferences.getInstance().then((prefs) {
2023-02-08 17:20:16 +08:00
prefs.setString("token", token ?? "");
2023-02-07 17:28:01 +08:00
});
}
removeToken() {
state = '';
SharedPreferences.getInstance().then((prefs) {
prefs.setString("token", "");
});
2023-02-06 23:45:56 +08:00
}
}
final tokenProvider =
2023-02-08 17:20:16 +08:00
NotifierProvider<TokenNotifier, String?>(() => TokenNotifier());