example/TwitterAuthApp/src/loginDialog.cpp
author cgandhi
Mon, 11 Oct 2010 21:59:54 +0530
changeset 26 83d6a149c755
permissions -rw-r--r--
Submitting following changes - AuthApps for Last.fm and Twitter added API for checking ServiceAuthorization added for SMFCredMgrClient API added for forcefully removing credential details from SMFCredMgr Extra argument checks in SMfClient APIs APIs for service login and logout from SMFClient Redundant members removed from SmfServerSymbian DSM bug fixes Test Apps included
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     1
/**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     2
* Copyright (c) 2010 Sasken Communication Technologies Ltd.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     3
* All rights reserved.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     4
* This component and the accompanying materials are made available
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     5
* under the terms of the "{License}"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     6
* which accompanies  this distribution, and is available
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     7
* at the URL "{LicenseUrl}".
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     8
*
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     9
* Initial Contributors:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    10
* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    11
*
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    12
* Contributors:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    13
* Siddhartha Chandra, Sasken Communication Technologies Ltd
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    14
* Description:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    15
* Login Dialog class of Authentication Application
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    16
*/
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    17
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    18
#include <qdebug.h>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    19
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    20
#include "authAppConstants.h"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    21
#include "sessionSP.h"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    22
#include "errorCodes.h"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    23
#include "loginDialog.h"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    24
#include "keys.h"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    25
#include <QNetworkCookie>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    26
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    27
// global
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    28
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    29
//static const QString kLoginURL = "http://www.facebook.com/login.php";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    30
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    31
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    32
void FBLoginDialog::connectToGetSession(const QString& aToken)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    33
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    34
	qDebug()<<"Inside FBLoginDialog::connectToGetSession()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    35
    iGetSessionRequest = FBRequest::requestWithSession(iSession);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    36
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    37
    //connect(iGetSessionRequest, SIGNAL(LoadLoginPage()), this, SLOT(LoadLoginPage()));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    38
    connect(iGetSessionRequest, SIGNAL(requestDidLoad(QVariant)), this, SLOT(requestDidLoad(QVariant)));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    39
    connect(iGetSessionRequest, SIGNAL(requestFailedWithNetworkError(QNetworkReply::NetworkError)), this, SLOT(requestFailedWithNetworkError(QNetworkReply::NetworkError)));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    40
    connect(iGetSessionRequest, SIGNAL(requestFailedWithFacebookError(FBError)), this, SLOT(requestFailedWithFacebookError(FBError)));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    41
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    42
    Dictionary params;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    43
    params["auth_token"] = aToken;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    44
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    45
    if (iSession->apiSecret().length())
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    46
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    47
        params["generate_session_secret"]="1";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    48
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    49
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    50
    if (iSession->getSessionProxy().length())
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    51
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    52
        iGetSessionRequest->post(iSession->getSessionProxy(),params);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    53
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    54
    else
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    55
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    56
        iGetSessionRequest->call("facebook.auth.getSession", params);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    57
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    58
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    59
void FBLoginDialog::connectToGetToken()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    60
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    61
		qDebug()<<"Inside FBLoginDialog::connectToGetToken()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    62
	    iGetSessionRequest = FBRequest::requestWithSession(iSession);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    63
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    64
	   // connect(iGetSessionRequest, SIGNAL(requestDidLoad(QVariant)), this, SLOT(requestDidLoad(QVariant)));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    65
	 //   connect(iGetSessionRequest, SIGNAL(requestFailedWithNetworkError(QNetworkReply::NetworkError)), this, SLOT(requestFailedWithNetworkError(QNetworkReply::NetworkError)));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    66
	  //  connect(iGetSessionRequest, SIGNAL(requestFailedWithFacebookError(FBError)), this, SLOT(requestFailedWithFacebookError(FBError)));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    67
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    68
	    Dictionary postParams;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    69
		iSession->stroauth_nonce = generateNONCE(43);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    70
		iSession->stroauth_timestamp = generateTimeStamp();//QString::number(generateTimeStamp());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    71
		qDebug()<<"iSession->stroauth_timestamp"<<iSession->stroauth_timestamp;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    72
		//postParams["oauth_callback"] = kBase;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    73
		postParams["oauth_consumer_key"] = kConsumerKey;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    74
		postParams["oauth_signature_method"] = "HMAC-SHA1";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    75
		postParams["oauth_timestamp"] = iSession->stroauth_timestamp;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    76
		postParams["oauth_nonce"] = iSession->stroauth_nonce;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    77
		postParams["oauth_version"] = "1.0";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    78
		FBRequest* req = FBRequest::requestWithSession(iSession);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    79
		iSession->stroauth_signature = req->generateSig(postParams);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    80
	    iGetSessionRequest->call("/uas/oauth/accessToken", postParams);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    81
	    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    82
	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    83
void FBLoginDialog::loadLoginPage()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    84
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    85
    iGetSessionRequest = FBRequest::requestWithSession(iSession);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    86
	qDebug()<<"Inside FBLoginDialog::loadLoginPage()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    87
    Dictionary getParams, postParams;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    88
    iSession->stroauth_nonce = generateNONCE(43);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    89
	iSession->stroauth_timestamp = generateTimeStamp();//QString::number(generateTimeStamp());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    90
	qDebug()<<"iSession->stroauth_timestamp"<<iSession->stroauth_timestamp;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    91
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    92
    postParams["oauth_consumer_key"] = kConsumerKey;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    93
    postParams["oauth_signature_method"] = "HMAC-SHA1";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    94
    postParams["oauth_timestamp"] = iSession->stroauth_timestamp;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    95
    postParams["oauth_nonce"] = iSession->stroauth_nonce;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    96
    postParams["oauth_version"] = "1.0";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    97
    iSession->stroauth_signature = iGetSessionRequest->generateSig(postParams);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    98
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    99
    connect(iGetSessionRequest, SIGNAL(LoadLoginPage()), this, SLOT(LoadLoginPage()));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   100
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   101
    iGetSessionRequest->connect();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   102
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   103
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   104
QByteArray FBLoginDialog::generateTimeStamp()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   105
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   106
		uint time = QDateTime::currentDateTime().toTime_t();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   107
	    QByteArray timestamp = QByteArray::number( time );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   108
	    return timestamp;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   109
	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   110
QString FBLoginDialog::generateNONCE(const qint64 Length)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   111
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   112
	srand(time(0));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   113
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   114
	//read upto milliseconds
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   115
	QString RetString;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   116
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   117
	QString Letters(
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   118
			"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   119
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   120
	//append a randomly generated string to RetString
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   121
	for (int i = 0; i < Length; i++)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   122
		{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   123
		RetString.insert((i), Letters.at(rand() % Letters.size()));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   124
		}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   125
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   126
	return RetString;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   127
	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   128
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   129
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   130
FBLoginDialog::FBLoginDialog() : FBDialog () {}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   131
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   132
FBLoginDialog::FBLoginDialog(FBSession* aSession) : FBDialog(aSession) {}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   133
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   134
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   135
// FBDialog
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   136
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   137
void FBLoginDialog::load()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   138
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   139
	qDebug()<<"Inside FBLoginDialog::load()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   140
    loadLoginPage();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   141
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   142
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   143
void FBLoginDialog::dialogWillDisappear()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   144
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   145
	qDebug()<<"Inside FBLoginDialog::dialogWillDisappear()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   146
  iGetSessionRequest->cancel();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   147
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   148
  if (!iSession->isConnected())
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   149
  {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   150
      iSession->cancelLogin();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   151
  }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   152
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   153
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   154
void FBLoginDialog::GetSessionKey(const QUrl& aUrl)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   155
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   156
	qDebug()<<"Inside FBLoginDialog::GetSessionKey()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   157
    const QString authToken = "auth_token=";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   158
    const QString url ( aUrl.toString() );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   159
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   160
    int start = url.indexOf(authToken);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   161
    if (start != -1)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   162
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   163
        QString token;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   164
        int end = url.indexOf("&", start);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   165
        int delta = start + authToken.size() + 1;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   166
        if (end != -1)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   167
        {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   168
            token = url.mid(delta, end - delta );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   169
        }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   170
        else
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   171
        {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   172
            token = url.right(url.size() - delta + 1);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   173
        }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   174
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   175
        connectToGetSession(token);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   176
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   177
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   178
void FBLoginDialog::FetchKeyFromUrl(const QUrl& aUrl)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   179
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   180
    const QString url ( aUrl.toString() );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   181
    QStringList varList = url.split("{");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   182
    QString newvar = varList[1];
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   183
    varList.clear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   184
    varList = newvar.split(",");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   185
    QString session_key = varList[0];
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   186
    QString uid = varList[1];
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   187
    QString expires = varList[2];
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   188
    QString secret = varList[3];
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   189
    varList.clear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   190
    varList = session_key.split(":");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   191
    session_key = varList[1];
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   192
    session_key = session_key.mid(1,session_key.length()-2);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   193
    varList.clear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   194
    varList = uid.split(":");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   195
    uid = varList[1];
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   196
	varList.clear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   197
	varList = expires.split(":");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   198
	expires = varList[1];
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   199
	varList.clear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   200
	varList = secret.split(":");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   201
	secret = varList[1];
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   202
	secret = secret.mid(1,secret.length()-2);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   203
	varList.clear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   204
    qDebug()<<"session_key"<<session_key<<"\n";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   205
    qDebug()<<"uid"<<uid<<"\n";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   206
    qDebug()<<"expires"<<expires<<"\n";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   207
    qDebug()<<"secret"<<secret<<"\n";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   208
    uint expiry = expires.toUInt();//.toUInt(&conversionError);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   209
    QDateTime expiration; expiration.setTime_t( expiry );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   210
    iSession->beginSession(session_key, secret,expiration);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   211
    iSession->resume();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   212
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   213
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   214
// slots for signals from FBRequest
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   215
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   216
void FBLoginDialog::requestDidLoad(const QVariant& aResult)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   217
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   218
	qDebug()<<"Inside FBLoginDialog::requestDidLoad";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   219
    bool conversionError = false;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   220
    QVariantHash object = aResult.toHash();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   221
    QString sessionKey = object.value("session_key").toString();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   222
    QString sessionSecret = object.value("secret").toString();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   223
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   224
    QVariant ex = object.value("expires");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   225
    uint expires = object.value("expires").toUInt(&conversionError);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   226
    QDateTime expiration; expiration.setTime_t( expires );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   227
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   228
    iSession->beginSession(sessionKey, sessionSecret,expiration);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   229
    iSession->resume();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   230
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   231
    dismissWithSuccess(true, true);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   232
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   233
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   234
void FBLoginDialog::requestFailedWithFacebookError (const FBError& aCode )
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   235
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   236
	qDebug()<<"Inside FBLoginDialog::requestFailedWithFacebookError()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   237
    dismissWithError(aCode, true);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   238
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   239
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   240
void FBLoginDialog::requestFailedWithNetworkError( QNetworkReply::NetworkError aCode )
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   241
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   242
	qDebug()<<"Inside FBLoginDialog::requestFailedWithNetworkError()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   243
    dismissWithError(aCode, true);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   244
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   245
void FBLoginDialog::LoadLoginPage()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   246
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   247
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   248
	qDebug()<<"Enter: LoadLoginPage()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   249
	QString LoginUrl = kAuthorizeUrl + "?oauth_token=";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   250
	LoginUrl += iSession->stroauth_Token;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   251
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   252
/*	QNetworkCookieJar* cookieJar = iWebView->page()->networkAccessManager()->cookieJar();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   253
	iWebView->page()->networkAccessManager()->setCookieJar(cookieJar);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   254
	QNetworkCookie testCookie;// "test_cookie", "1");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   255
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   256
	testCookie.setDomain ( "twitter.com" );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   257
	QDateTime dt = QDateTime::currentDateTime();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   258
	dt.addDays(1);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   259
	testCookie.setExpirationDate(dt);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   260
	testCookie.setHttpOnly(false);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   261
	testCookie.setName("twittercookie");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   262
	testCookie.setValue("1");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   263
	testCookie.setPath ( "/" );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   264
	testCookie.setSecure ( true);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   265
	QList<QNetworkCookie> cookieList;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   266
	cookieList.append(testCookie);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   267
	cookieJar->setCookiesFromUrl ( cookieList, QUrl("https://www.twitter.com/") );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   268
	QWebSettings::globalSettings()->setOfflineStoragePath("C:\\Data");*/
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   269
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   270
	iWebView->load(LoginUrl);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   271
	qDebug()<<"Exit: LoadLoginPage()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   272
	   
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   273
	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   274
void FBLoginDialog::GetAccessToken()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   275
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   276
		qDebug()<<"Inside FBLoginDialog::GetAccessToken()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   277
	    Dictionary postParams;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   278
	    iSession->stroauth_nonce = generateNONCE(43);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   279
		iSession->stroauth_timestamp = generateTimeStamp();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   280
		
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   281
	    postParams["oauth_consumer_key"] = kConsumerKey;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   282
	    postParams["oauth_nonce"] = iSession->stroauth_nonce;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   283
	    postParams["oauth_signature_method"] = "HMAC-SHA1";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   284
	    postParams["oauth_token"] = iSession->stroauth_Token;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   285
	    postParams["oauth_timestamp"] = iSession->stroauth_timestamp;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   286
	    postParams["oauth_verifier"] = iSession->stroauth_verifier;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   287
	    postParams["oauth_version"] = "1.0";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   288
	    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   289
	    iSession->stroauth_signature = iGetSessionRequest->generateSig(postParams);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   290
		
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   291
	    iGetSessionRequest->connect_req("/access_token");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   292
	}