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

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

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

class BasicAuthInfo {
    final String username;
    final String password;

    const BasicAuthInfo(this.username, this.password);
}

class BasicAuthInterceptor extends AuthInterceptor {
    Map authInfo = {};

    @override
    Future onRequest(RequestOptions options) {
        final metadataAuthInfo = getAuthInfo(options, 'basic');
        for (final info in metadataAuthInfo) {
            final authName = info['name'] as String;
            final basicAuthInfo = authInfo[authName];
            if (basicAuthInfo != null) {
                final basicAuth = 'Basic ' + base64Encode(utf8.encode('${basicAuthInfo.username}:${basicAuthInfo.password}'));
                options.headers['Authorization'] = basicAuth;
                break;
            }
        }

        return super.onRequest(options);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy