Handle google drive token.

Use LoadResult auth header mechanism to pass auth token to pipeline as a header
instead of obsolete query string method.
This commit is contained in:
Jim Broadus 2020-02-19 22:56:56 -08:00 committed by John Maguire
parent e338939c8b
commit 8e6d09d445
4 changed files with 12 additions and 8 deletions

View File

@ -132,9 +132,12 @@ void Client::FetchUserInfoFinished(ConnectResponse* response,
emit Authenticated();
}
QByteArray Client::GetAuthHeader() const {
return QString("Bearer %1").arg(access_token_).toUtf8();
}
void Client::AddAuthorizationHeader(QNetworkRequest* request) const {
request->setRawHeader("Authorization",
QString("Bearer %1").arg(access_token_).toUtf8());
request->setRawHeader("Authorization", GetAuthHeader());
}
GetFileResponse* Client::GetFile(const QString& file_id) {

View File

@ -149,6 +149,8 @@ class Client : public QObject {
GetFileResponse* GetFile(const QString& file_id);
ListChangesResponse* ListChanges(const QString& cursor);
QByteArray GetAuthHeader() const;
signals:
void Authenticated();

View File

@ -209,11 +209,7 @@ QUrl GoogleDriveService::GetStreamingUrlFromSongId(const QString& id) {
return QUrl();
}
QUrl url(response->file().download_url());
QUrlQuery url_query(url);
url_query.addQueryItem("access_token", client_->access_token());
url.setQuery(url_query);
return url;
return QUrl(response->file().download_url());
}
void GoogleDriveService::ShowContextMenu(const QPoint& global_pos) {

View File

@ -18,6 +18,7 @@
#include "googledriveurlhandler.h"
#include "googledriveclient.h"
#include "googledriveservice.h"
GoogleDriveUrlHandler::GoogleDriveUrlHandler(GoogleDriveService* service,
@ -29,5 +30,7 @@ UrlHandler::LoadResult GoogleDriveUrlHandler::StartLoading(const QUrl& url) {
QUrl real_url = service_->GetStreamingUrlFromSongId(file_id);
LoadResult::Type type = real_url.isValid() ? LoadResult::TrackAvailable
: LoadResult::NoMoreTracks;
return LoadResult(url, type, real_url);
LoadResult res(url, type, real_url);
res.auth_header_ = service_->client()->GetAuthHeader();
return res;
}