void LoginDialog::FinishLogin(QNetworkReply *reply) { QList<QNetworkCookie> cookies = reply->manager()->cookieJar()->cookiesForUrl(QUrl(POE_MAIN_PAGE)); for (auto &cookie : cookies) if (QString(cookie.name()) == POE_COOKIE_NAME) session_id_ = cookie.value(); // we need one more request to get account name QNetworkReply *main_page = login_manager_->get(QNetworkRequest(QUrl(POE_MY_ACCOUNT))); connect(main_page, SIGNAL(finished()), this, SLOT(OnMainPageFinished())); }
void LoginDialog::OnLoggedIn() { QNetworkReply *reply = qobject_cast<QNetworkReply *>(QObject::sender()); QByteArray bytes = reply->readAll(); int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); if (status != 302) { DisplayError("Failed to log in (invalid password or expired session ID? try re-logging with email/password pair or via steam)"); return; } QList<QNetworkCookie> cookies = reply->manager()->cookieJar()->cookiesForUrl(QUrl(POE_MAIN_PAGE)); for (auto &cookie : cookies) if (QString(cookie.name()) == POE_COOKIE_NAME) session_id_ = cookie.value(); // we need one more request to get account name QNetworkReply *main_page = login_manager_->get(QNetworkRequest(QUrl(POE_MY_ACCOUNT))); connect(main_page, SIGNAL(finished()), this, SLOT(OnMainPageFinished())); }