From 59466bbc70b5b51f35458bddac6e7df4203c42b7 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Mon, 3 Sep 2012 07:09:43 +0200 Subject: Add support for X-MESSENGER-OAUTH2 authentication for Windows Live Messenger. --- src/client/QXmppConfiguration.cpp | 22 ++++++++++++++++++++++ src/client/QXmppConfiguration.h | 3 +++ src/client/QXmppOutgoingClient.cpp | 2 ++ 3 files changed, 27 insertions(+) (limited to 'src/client') diff --git a/src/client/QXmppConfiguration.cpp b/src/client/QXmppConfiguration.cpp index 336630ee..eb30e0df 100644 --- a/src/client/QXmppConfiguration.cpp +++ b/src/client/QXmppConfiguration.cpp @@ -43,6 +43,9 @@ public: QString facebookAccessToken; QString facebookAppId; + // Windows Live + QString windowsLiveAccessToken; + // default is false bool autoAcceptSubscriptions; // default is true @@ -328,6 +331,25 @@ void QXmppConfiguration::setFacebookAppId(const QString& appId) d->facebookAppId = appId; } +/// Returns the access token used for X-MESSENGER-OAUTH2 authentication. + +QString QXmppConfiguration::windowsLiveAccessToken() const +{ + return d->windowsLiveAccessToken; +} + +/// Sets the access token used for X-MESSENGER-OAUTH2 authentication. +/// +/// This token is returned by Windows Live at the end of the OAuth authentication +/// process. +/// +/// \param accessToken + +void QXmppConfiguration::setWindowsLiveAccessToken(const QString& accessToken) +{ + d->windowsLiveAccessToken = accessToken; +} + /// Returns the auto-accept-subscriptions-request configuration. /// /// \return boolean value diff --git a/src/client/QXmppConfiguration.h b/src/client/QXmppConfiguration.h index c578cd74..dc384520 100644 --- a/src/client/QXmppConfiguration.h +++ b/src/client/QXmppConfiguration.h @@ -107,6 +107,9 @@ public: QString facebookAppId() const; void setFacebookAppId(const QString&); + QString windowsLiveAccessToken() const; + void setWindowsLiveAccessToken(const QString &accessToken); + bool autoAcceptSubscriptions() const; void setAutoAcceptSubscriptions(bool); diff --git a/src/client/QXmppOutgoingClient.cpp b/src/client/QXmppOutgoingClient.cpp index 3c480155..c3e6c1f9 100644 --- a/src/client/QXmppOutgoingClient.cpp +++ b/src/client/QXmppOutgoingClient.cpp @@ -395,6 +395,8 @@ void QXmppOutgoingClient::handleStanza(const QDomElement &nodeRecv) if (d->saslClient->mechanism() == "X-FACEBOOK-PLATFORM") { d->saslClient->setUsername(configuration().facebookAppId()); d->saslClient->setPassword(configuration().facebookAccessToken()); + } else if (d->saslClient->mechanism() == "X-MESSENGER-OAUTH2") { + d->saslClient->setPassword(configuration().windowsLiveAccessToken()); } else { d->saslClient->setUsername(configuration().user()); d->saslClient->setPassword(configuration().password()); -- cgit v1.2.3