getAccessToken method

Future<Map<String, dynamic>?> getAccessToken({
  1. required String username,
  2. required String password,
})

Implementation

Future<Map<String, dynamic>?> getAccessToken({
  required String username,
  required String password,
}) async {
  final String url =
      'https://apidev.ioh.co.id/oauth2-cc/jwt?apikey=${Uri.encodeComponent(username)}';

  String basicAuth =
      'Basic ${base64Encode(utf8.encode('$username:$password'))}';

  final Map<String, String> headers = {
    'Authorization': basicAuth,
    'Content-Type': 'application/x-www-form-urlencoded',
  };

  final Map<String, String> body = {
    'grant_type': 'client_credentials',
  };

  try {
    final response = await http.post(
      Uri.parse(url),
      headers: headers,
      body: body,
    );

    print("Full API Response: ${response.body}"); // Print full response

    if (response.statusCode == 200) {
      var data = jsonDecode(response.body);
      return data; // Return complete response body as a Map
    } else {
      print('Error: ${response.statusCode} - ${response.body}');
      return null;
    }
  } catch (e) {
    print('Exception: $e');
    return null;
  }
}