OAuth: Pass client auth in header instead of url

To play more nicely with redirects.
This commit is contained in:
Christian Kamm 2017-09-11 12:23:52 +02:00 committed by Roeland Jago Douma
parent ce51ea34b9
commit a79b0a3791
No known key found for this signature in database
GPG key ID: F941078878347C0C

View file

@ -79,10 +79,11 @@ void OAuth::start()
+ QLatin1String("/index.php/apps/oauth2/api/v1/token?grant_type=authorization_code&code=") + QLatin1String("/index.php/apps/oauth2/api/v1/token?grant_type=authorization_code&code=")
+ code + code
+ QLatin1String("&redirect_uri=http://localhost:") + QString::number(_server.serverPort())); + QLatin1String("&redirect_uri=http://localhost:") + QString::number(_server.serverPort()));
requestToken.setUserName(Theme::instance()->oauthClientId());
requestToken.setPassword(Theme::instance()->oauthClientSecret());
QNetworkRequest req; QNetworkRequest req;
req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); 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); auto job = _account->sendRequest("POST", requestToken, req);
QObject::connect(job, &SimpleNetworkJob::finishedSignal, this, [this, socket](QNetworkReply *reply) { QObject::connect(job, &SimpleNetworkJob::finishedSignal, this, [this, socket](QNetworkReply *reply) {
auto jsonData = reply->readAll(); auto jsonData = reply->readAll();