Je travaille sur une application mobile Flutter simple qui doit appeler une API qui utilise l'authentification de base.
Je peux accéder à l'API dans Postman en utilisant les informations d'identification par e-mail et mot de passe et il encode l'e-mail et le mot de passe en Base64 (je suppose avec un ":" séparant) avant d'effectuer la demande.
Je ne sais pas comment faire ça dans Flutter/Dart ...
J'ai bricolé le paquet http et essayé de faire l'encodage Base64 ... mais je récupère juste des erreurs du serveur.
Quelqu'un peut-il fournir des conseils ou un exemple pour une demande d'authentification de base?
En supposant que votre serveur attend que le username:password
le combo sera encodé en UTF-8 (voir RFC 7617 pour plus de détails) puis utilisez ceci:
import 'Dart:convert';
import 'package:http/http.Dart';
main() async {
String username = 'test';
String password = '123£';
String basicAuth =
'Basic ' + base64Encode(utf8.encode('$username:$password'));
print(basicAuth);
Response r = await get('https://api.somewhere.io',
headers: <String, String>{'authorization': basicAuth});
print(r.statusCode);
print(r.body);
}