Правильная установка cookie в запросах на топливо - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь установить cookie для всех запросов get или post после успешной аутентификации. Запрос аутентификации возвращает ответ со значением заголовка Set-cookie в формате

[accesstoken=sample_token; Version=1; Comment=secured; Domain=test.com; Max-Age=172800000; Expires=Mon, 07-Apr-2025 10:55:18 GMT; Path=]

. Для веб-приложения мне не нужно ничего устанавливать, запрос xhr автоматически обрабатывает добавление cookie. Этот cookie-файл также отвечает за идентификацию пользователя на сервере. Я где-то читал, что cookie - это просто заголовок с Cookie в качестве значения ключа. Так что после успешной аутентификации заголовок Set-Cookie читается из заголовка ответа в формате, заданном с помощью

var cookeis = response.headers.get("Set-Cookie").toString()

Далеезначение добавляется в качестве заголовка в каждом последующем запросе.

fun _POST(ctx: Context, path: String, query: List<Pair<String, String?>>): Request {
  var fuel = Fuel.post(ctx.getString(baseID)+path, query)
  val accesstoken = getCookie(ctx)

  when(accesstoken!=null){
    true ->  fuel = fuel.set(com.github.kittinunf.fuel.core.Headers.COOKIE,accesstoken)
    false -> {}
  }
return fuel
}

Я вижу отправляемый заголовок, если я печатаю заголовки в любом запросе на публикацию, как указано ниже

val (request, response, result) = _POST(this@MainActivity, getString(R.string.API_MY_DATA), listOf("date" to currentDate))
                .also { println(it.headers.toString()) }
                .response()

это напечатаеттот же cookie, ранее установленный -

[accesstoken=sample_token; Version=1; Comment=secured; Domain=test.com; Max-Age=172800000; Expires=Mon, 07-Apr-2025 10:55:18 GMT; Path=]

, но сервер возвращает 400 статус ответа. Этот же API был использован для разработки приложения с использованием библиотеки react-native. Там xhr-запросы автоматически обрабатывают управление файлами cookie.

Примечание: у меня нет доступа к серверной части.

...