getUserInfo method

Future getUserInfo({
  1. dynamic inputConf,
  2. dynamic inputTokens,
})

Get User Info

Implementation

Future getUserInfo({inputConf, inputTokens}) async {
  final conf = inputConf ?? getConfiguration();

  if (conf == null) {
    throw 'Error during kc-retrieve-user-info: '
        'Could not read configuration from storage';
  }

  final savedTokens = inputTokens ?? getTokens();
  print('[xxx]savedTokens:$savedTokens');
  if (savedTokens == null) {
    throw 'Error during kc-retrieve-user-info, savedTokens is $savedTokens';
  }

  final userInfoUrl = conf['userinfo_endpoint'];
  print('[xxx]userInfoUrl:$userInfoUrl');
  final dio = Dio();
  dio.options.headers[HttpHeaders.acceptHeader] = 'application/json';
  dio.options.headers[HttpHeaders.contentTypeHeader] = 'application/x-www-form-urlencoded';
  dio.options.headers[HttpHeaders.authorizationHeader] = 'Bearer ${savedTokens['access_token']}';

  final response = await dio.get(userInfoUrl);

  if (response.statusCode == 200) {
    return response.data;
  }

  throw 'Error during kc-retrieve-user-info: '
      '${response.statusCode}: '
      '${response.data}';
}