Search code examples
flutterhttpdarthttp-postflutter-http

After posting backend responding a token . Now how will get that that token? flutter http request


After log in backend responding a token. Now how will get that that token?

I used HTTP package for this project. I am new to flutter. my code example:

  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")));
}

}


Solution

  • I assume that you've got something like this from server:

    {
      "data": {
        "token": "TOKEN"
        ...
      }
    }
    

    You can get the token like this:

    if (response.statusCode == 201) {
      final decodedResponse = jsonDecode(response.body) as Map;
      final token = decodedResponse['data']['token'];
    } else {
      throw Exception('Failed to find account.');
    }