From a79b0a37916f5f467a05739a1494eb189a49f14d Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Mon, 11 Sep 2017 12:23:52 +0200 Subject: [PATCH] OAuth: Pass client auth in header instead of url To play more nicely with redirects. --- src/gui/creds/oauth.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gui/creds/oauth.cpp b/src/gui/creds/oauth.cpp index 9926700f7..4f0b72a9f 100644 --- a/src/gui/creds/oauth.cpp +++ b/src/gui/creds/oauth.cpp @@ -79,10 +79,11 @@ void OAuth::start() + QLatin1String("/index.php/apps/oauth2/api/v1/token?grant_type=authorization_code&code=") + code + QLatin1String("&redirect_uri=http://localhost:") + QString::number(_server.serverPort())); - requestToken.setUserName(Theme::instance()->oauthClientId()); - requestToken.setPassword(Theme::instance()->oauthClientSecret()); QNetworkRequest req; req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); + QString basicAuth = QString("%1:%2").arg( + Theme::instance()->oauthClientId(), Theme::instance()->oauthClientSecret()); + req.setRawHeader("Authorization", "Basic " + basicAuth.toUtf8().toBase64()); auto job = _account->sendRequest("POST", requestToken, req); QObject::connect(job, &SimpleNetworkJob::finishedSignal, this, [this, socket](QNetworkReply *reply) { auto jsonData = reply->readAll(); -- 2.39.5