Don't store the spotify password and instead use sp_session_relogin().

This commit is contained in:
John Maguire 2011-11-24 12:17:19 +01:00
parent 6cfecf9b6f
commit e32bb5cc89
5 changed files with 18 additions and 10 deletions

View File

@ -289,11 +289,19 @@ void SpotifyClient::Login(const QString& username, const QString& password) {
sp_session_preferred_bitrate(session_, SP_BITRATE_320k);
sp_session_preferred_offline_bitrate(session_, SP_BITRATE_320k, false);
#if SPOTIFY_API_VERSION < 9
sp_session_login(session_, username.toUtf8().constData(), password.toUtf8().constData());
#else
sp_session_login(session_, username.toUtf8().constData(), password.toUtf8().constData(), true);
#endif
if (password.isEmpty()) {
sp_error error = sp_session_relogin(session_);
if (error != SP_ERROR_OK) {
qLog(Warning) << "Tried to relogin but no stored credentials";
SendLoginCompleted(false, sp_error_message(error),
spotify_pb::LoginResponse_Error_BadUsernameOrPassword);
}
} else {
sp_session_login(session_,
username.toUtf8().constData(),
password.toUtf8().constData(),
true); // Remember the password.
}
}
void SpotifyClient::SendLoginCompleted(bool success, const QString& error,

View File

@ -26,7 +26,7 @@ option optimize_for = LITE_RUNTIME;
message LoginRequest {
required string username = 1;
required string password = 2;
optional string password = 2;
}
message LoginResponse {

View File

@ -80,7 +80,9 @@ void SpotifyServer::Login(const QString& username, const QString& password) {
spotify_pb::LoginRequest* request = message.mutable_login_request();
request->set_username(DataCommaSizeFromQString(username));
request->set_password(DataCommaSizeFromQString(password));
if (!password.isEmpty()) {
request->set_password(DataCommaSizeFromQString(password));
}
SendMessage(message);
}

View File

@ -220,7 +220,7 @@ void SpotifyService::EnsureServerCreated(const QString& username,
QSettings s;
s.beginGroup(kSettingsGroup);
server_->Login(s.value("username").toString(), s.value("password").toString());
server_->Login(s.value("username").toString(), QString::null);
} else {
server_->Login(username, password);
}

View File

@ -100,10 +100,8 @@ void SpotifySettingsPage::Load() {
s.beginGroup(SpotifyService::kSettingsGroup);
original_username_ = s.value("username").toString();
original_password_ = s.value("password").toString();
ui_->username->setText(original_username_);
ui_->password->setText(original_password_);
validated_ = false;
UpdateLoginState();