Как передать базовые учетные данные в вызов API для мобильного приложения Flutter? - PullRequest
0 голосов
/ 09 мая 2018

Я работаю над простым мобильным приложением Flutter, которое должно обращаться к API, использующему Basic Auth.

Я могу нажать API в Postman, используя учетные данные электронной почты и пароля, и он кодирует электронную почту и пароль в Base64 (я полагаю с разделением ":") перед выполнением запроса.

Я не уверен, как это сделать в Flutter / Dart ...

Я возился с пакетом http и пытался выполнить кодировку Base64 ... но я просто получаю сообщения об ошибках с сервера.

Может ли кто-нибудь предоставить руководство или пример для базового запроса аутентификации?

1 Ответ

0 голосов
/ 09 мая 2018

Предполагая, что ваш сервер ожидает, что комбо username:password закодирует его как UTF-8 (см. RFC 7617 для более подробной информации), затем используйте это:

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: {'authorization': basicAuth});
  print(r.statusCode);
  print(r.body);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...