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());
|