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

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

There is a newer version: 7.9.0
Show newest version
{{>header}}
import 'dart:async';
import 'package:{{pubName}}/auth/auth.dart';
import 'package:dio/dio.dart';

class ApiKeyAuthInterceptor extends AuthInterceptor {
    Map apiKeys = {};

    @override
    Future onRequest(RequestOptions options) {
        final authInfo = getAuthInfo(options, '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;
                }
                break;
            }
        }
        return super.onRequest(options);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy