я хочу сохранить значение токена и перейти на домашнюю страницу, используя go router после входа в систему. Я не знаю, как обрабатывать данные json, такие как отображение или (получение) имени и роли. Я новичок в программировании.
Помогите мне. Заранее спасибо. Я пробовал примеры FutureBuilder, но это не сработало. пожалуйста, дайте простое решение.
Future<Loginuser> fetchLoginuser(String mobile, String password) async {
final response = await http.post(
Uri.parse('https://random.url/api/login'),
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonEncode(
<String, String>{'mobile': mobile, 'password': password}));
if (response.statusCode == 200) {
return Loginuser.fromJson(json.decode(response.body));
} else {
throw Exception('Failed to update album.');
}
}
class Userinfo {
double branchcode;
double role;
double name;
Userinfo({required this.branchcode, required this.role, required this.name});
factory Userinfo.fromJson(Map<String, dynamic> json) {
return Userinfo(
branchcode: json['branchcode'], role: json['role'], name: json['name']);
}
}
class Loginuser {
final String message;
final String messagecode;
final String token;
final Userinfo userinfo;
const Loginuser({
required this.message,
required this.messagecode,
required this.token,
required this.userinfo,
});
factory Loginuser.fromJson(Map<String, dynamic> json) {
return Loginuser(
message: json['message'],
messagecode: json['messagecode'],
token: json['token'],
userinfo: json['userinfo']);
}
}





Используйте shared_preferences использование прямолинейно
вот просто сделай это
if (response.statusCode == 200) {
Loginuser _user = Loginuser.fromJson(json.decode(response.body));
final prefs = await SharedPreferences.getInstance();
await prefs.setString('token', user.token);
return user;
} else {
throw Exception('Failed to update album.');
}
И в следующий раз, когда вы захотите проверить, был ли пользователь вошел в систему или нет
final prefs = await SharedPreferences.getInstance();
final String? action = prefs.getString('token');
if (token == null){ //not logged in}else{ //logged navigate to dashboard}
///Создать отдельного помощника/менеджера для общих настроек. Это просто пример///
мой ответ API здесь drive.google.com/file/d/1sCFUASl1_MRoXxvat4BiAixsMtU3g1RT/…
Это другое, вы неправильно сопоставили свой JSON и соответствующую модель.
Попробуйте использовать это -> jsontodart.in
мой еще один вопрос. Заранее спасибо.stackoverflow.com/questions/74946343/…
Спасибо за Ваш ответ. сначала я реализую код. это дает ошибку Избегайте подчеркивания в начале для локальных идентификаторов. затем я удалил подчеркивание. затем проверил вывод ошибки в консоли drive.google.com/file/d/1EmoiLG7rseHouBqm2yKbu6esmPI4cE-g/…