All Downloads are FREE. Search and download functionalities are using the official Maven repository.

dart.libraries.dio.auth.api_key_auth.mustache Maven / Gradle / Ivy

There is a newer version: 7.9.0
Show newest version
{{>header}}

import 'package:dio/dio.dart';
import 'package:{{pubName}}/src/auth/auth.dart';

class ApiKeyAuthInterceptor extends AuthInterceptor {
  final Map apiKeys = {};

  @override
  void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
    final authInfo = getAuthInfo(options, (secure) => secure['type'] == 'apiKey');
    for (final info in authInfo) {
      final authName = info['name'] as String;
      final authKeyName = info['keyName'] as String;
      final authWhere = info['where'] as String;
      final apiKey = apiKeys[authName];
      if (apiKey != null) {
        if (authWhere == 'query') {
          options.queryParameters[authKeyName] = apiKey;
        } else {
          options.headers[authKeyName] = apiKey;
        }
      }
    }
    super.onRequest(options, handler);
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy