Создание флаттера Json Форма входа с пользовательской базовой аутентификацией - PullRequest
0 голосов
/ 28 сентября 2018

Застряли на этом этапе довольно долго.Может ли кто-нибудь показать мне, как отправить запрос, чтобы при нажатии кнопки «Войти» был создан новый экземпляр пользователя с обычной аутентификацией.Я хотел бы понять, как узнать, как расположены заголовки для доступа к базе данных URL

     void Login() {
    final form = formKey.currentState;
    if (form.validate()) {
      form.save();
      makePost();
    }
  }

    second part my json methond

     Future<Post> makePost() async {
    String Username = "denisPos";
    String Password = "moV4b90WqpHfghghsg";
    final response = await http.post('http://.60.4546.109:4520/postRequest',
        headers: {HttpHeaders.authorizationHeader: '$Password:$Username:$url'});
    final responseJson = json.decode(response.body);

    return Post.fromJson(responseJson);
  }


    class Post {
  final String phone;

  final String password;
  final String body;

  Post({this.phone, this.password, this.body});

  factory Post.fromJson(Map<String, dynamic> json) {
    return Post(
      phone: json['phone'],
      password: json['password'],
      body: json['body'],
    );
  }
}

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018
    Future<http.Response> post() async {
    var url = 'http://xxxxxxxxxxxxx;
    String password = "xxxxxxxxxxxxxxxx;
    String username = "
    var bytes = utf8.encode("$username:$password");


    var credentials = base64.encode(bytes);
    var headers = {
      "Content-Type": "application/json",
      "Authorization": "Basic $credentials"
    };

    var requestBody = jsonEncode({ 'phone': phone, 'pass': pass});

    http.Response response = await http.post(
        url, body: requestBody, headers: headers);
    var responseJson = json.decode(response.body);
    print(Utf8Codec().decode(response.bodyBytes));

    print("Body: " + responseJson);
  }
0 голосов
/ 28 сентября 2018

Если вы говорите о базовой аутентификации, у вас может быть что-то вроде следующего кода:

Future<Post> makePost() async {
  String username = "denisPos";
  String password = "moV4b90WqpHfghghsg";
  var bytes = utf8.encode("$username:$password");
  var credentials = base64.encode(bytes);
  var headers = {
    "Accept": "application/json",
    "Authorization": "Basic $credentials"
  };
  var url = ...
  var requestBody = ....
  http.Response response = await http.post(url, body: requestBody, headers: headers);
  var responseJson = json.decode(response.body);

  return Post.fromJson(responseJson);
}

Если вы отправляете запрос GET, вы можете вообще пропустить requestBody.

http.Response response = await http.get(url, headers: headers);
...