登录后端后响应令牌。现在该如何获得代币?
我在这个项目中使用了HTTP包。我是新来的。我的代码示例:
Future<void> login() async {
if (_password.text.isNotEmpty && _number.text.isNotEmpty) {
final response = await http.post(
Uri.parse(
'https://api.azabazar.com/api/login/?fbclid=IwAR2Sz4ky31HCG4g2Sbhn08LV3QqV76YEaIIQwpRavXRB1A4o0fq4aiQ22kE'),
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
HttpHeaders.authorizationHeader: 'Basic your_api_token_here', //here i want my token
},
body: jsonEncode(<String, String>{
"username": _number.text,
"password": _password.text,
}),
);
if (response.statusCode == 201) {
const Text("Loged in");
} else {
throw Exception('Failed to find account.');
}
} else {
ScaffoldMessenger.of(context)
.showSnackBar(const SnackBar(content: Text("invalid form")));
}
}
我假设您已经从服务器得到了这样的东西:
{
"data": {
"token": "TOKEN"
...
}
}
你可以得到这样的令牌:
if (response.statusCode == 201) {
final decodedResponse = jsonDecode(response.body) as Map;
final token = decodedResponse['data']['token'];
} else {
throw Exception('Failed to find account.');
}