MCPcopy Create free account
hub / github.com/MultiMC/Launcher / refresh

Method refresh

libraries/katabasis/src/DeviceFlow.cpp:359–390  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

357}
358
359bool DeviceFlow::refresh() {
360 qDebug() << "DeviceFlow::refresh: Token: ..." << refreshToken().right(7);
361
362 updateActivity(Activity::Refreshing);
363
364 if (refreshToken().isEmpty()) {
365 qWarning() << "DeviceFlow::refresh: No refresh token";
366 onRefreshError(QNetworkReply::AuthenticationRequiredError, nullptr);
367 return false;
368 }
369 if (options_.accessTokenUrl.isEmpty()) {
370 qWarning() << "DeviceFlow::refresh: Refresh token URL not set";
371 onRefreshError(QNetworkReply::AuthenticationRequiredError, nullptr);
372 return false;
373 }
374
375 QNetworkRequest refreshRequest(options_.accessTokenUrl);
376 refreshRequest.setHeader(QNetworkRequest::ContentTypeHeader, MIME_TYPE_XFORM);
377 QMap<QString, QString> parameters;
378 parameters.insert(OAUTH2_CLIENT_ID, options_.clientIdentifier);
379 if ( !options_.clientSecret.isEmpty() ) {
380 parameters.insert(OAUTH2_CLIENT_SECRET, options_.clientSecret);
381 }
382 parameters.insert(OAUTH2_REFRESH_TOKEN, refreshToken());
383 parameters.insert(OAUTH2_GRANT_TYPE, OAUTH2_REFRESH_TOKEN);
384
385 QByteArray data = buildRequestBody(parameters);
386 QNetworkReply *refreshReply = manager_->post(refreshRequest, data);
387 timedReplies_.add(refreshReply);
388 connect(refreshReply, &QNetworkReply::finished, this, &DeviceFlow::onRefreshFinished, Qt::QueuedConnection);
389 return true;
390}
391
392void DeviceFlow::onRefreshFinished() {
393 QNetworkReply *refreshReply = qobject_cast<QNetworkReply *>(sender());

Callers

nothing calls this directly

Calls 5

buildRequestBodyFunction · 0.85
isEmptyMethod · 0.80
insertMethod · 0.80
postMethod · 0.80
addMethod · 0.45

Tested by

no test coverage detected