Нужно сделать так чтобы из любой точки приложения можно было получить доступ к ip и token зарегистрированного пользователя.
Есть функция регистрации пользователя.
@override
void initState() {
super.initState();
getData();
}
getData() async {
posts = await createUser(context);
if (posts != null) {
setState(() {
isLoaded = true;
});
}
}
Future<List<User>?> createUser(BuildContext context) async {
var r = await http.post(
Uri.parse("http://217.71.129.139:4800/create_user.php"),
body: {
"name": _nameController.text,
"mail": _mailController.text,
"password": _passwordController.text,
},
);
return userFromJson(r.body);
}
есть класс который является бозой для переменной post.
import 'dart:convert';
List<User> userFromJson(String str) =>
List<User>.from(json.decode(str).map((x) => User.fromJson(x)));
String userToJson(List<User> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class User {
User({
required this.id,
required this.name,
required this.mail,
required this.password,
required this.token,
});
int id;
String name;
String mail;
String password;
String token;
factory User.fromJson(Map<String, dynamic> json) => User(
id: json["id"],
name: json["name"],
mail: json["mail"],
password: json["password"],
token: json["token"],
);
Map<String, dynamic> toJson() => {
"id": id,
"name": name,
"mail": mail,
"password": password,
"token": token,
};
}
и есть provider для пользователя
class User_pril with ChangeNotifier {
final int _id = 0;
int get id => _id;
String _name = '';
String get name => _name;
String _mail = '';
String get mail => _mail;
String _password = '';
String get password => _password;
String _token = '';
String get token => _token;
void addUser(User user) {
notifyListeners();
}
}
но я не понимаю какие операции должны быть в addUser