Проблема с установкой нескольких файлов cookie в ответе веб -сервера ESP32C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Проблема с установкой нескольких файлов cookie в ответе веб -сервера ESP32

Сообщение Anonymous »



void handleLogin(AsyncWebServerRequest *request)
{
if (request->hasParam("username", true) && request->hasParam("password", true))
{
String username = request->getParam("username", true)->value();
String password = request->getParam("password", true)->value();
String role = "";

if (username == admin.username && password == admin.password)
{
role = admin.role;
}
else if (username == operatorUser.username && password == operatorUser.password)
{
role = operatorUser.role;
}

if (role != "")
{
String sessionId = generateSessionID();
sessions[sessionId] = {role, millis()};

// Create a JSON response
DynamicJsonDocument jsonDoc(256);
jsonDoc["message"] = "welcome";
jsonDoc["type"] = "success";
jsonDoc["redirect"] = "/";

String jsonStr;
serializeJson(jsonDoc, jsonStr);

// Create response object and add cookies
AsyncWebServerResponse *response = request->beginResponse(200, "application/json", jsonStr);
String expires = generateExpirationDate(SESSION_TIMEOUT);
response->addHeader("Set-Cookie", "ESPSESSIONID=" + sessionId + "; Path=/; HttpOnly; Expires=" + expires);
response->addHeader("Set-Cookie", "UserRole=" + role + "; Path=/; Expires=" + expires);
request->send(response); // Send response with cookies included
return;
}
}
}< /code>
< /div>
< /div>
< /p>
Я сталкиваюсь Браузер, даже когда я переупорядочивался заголовки Set-Cookie. Первое печенье постоянно игнорируется. Чтобы устранить устранение неполадок, я попытался сделать следующее: < /p>

Удал атрибут httponly. Куки для хранения приложений; Применяется только второй cookie. .
Несмотря на эти усилия, проблема сохраняется. < /li>
< /ul>

Подробнее здесь: https://stackoverflow.com/questions/794 ... r-response
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»