onRequest method

  1. @override
Future<void> onRequest(
  1. RequestOptions options,
  2. RequestInterceptorHandler handler
)
override

Called when the request is about to be sent.

Implementation

@override
Future<void> onRequest(
  RequestOptions options,
  RequestInterceptorHandler handler,
) async {
  // Generate token
  String token = generateToken();

  // Add token to headers
  options.headers['token'] = token;

  // Add encrypted token to body and encrypt body (for JSON requests)
  if (options.data is Map<String, dynamic>) {
    final body = Map<String, dynamic>.from(options.data);
    body['token'] = token;
    // body['token'] = encryptString(inputText: token);
    options.data = _encryptRequestBody(body);
  } else if (options.data is FormData) {
    // FormData is not encrypted here
    options.data.fields.add(
      // MapEntry('token', encryptString(inputText: token)),
      MapEntry('token', token),
    );
  }

  handler.next(options);
}