example/LinkedInAuthApp/src/loginDialog.cpp
author cgandhi
Tue, 12 Oct 2010 15:23:52 +0530
changeset 27 b3e1347ac96a
parent 26 83d6a149c755
permissions -rw-r--r--
Updating the information for test applications and results.
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, Satish Kanteti 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
#include <QInputDialog>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    27
#include <QSslConfiguration>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    28
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    29
static const QString kStringBoundary = "3i2ndDfv2rTHiSisAbouNdArYfORhtTPEefj3q2f";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    30
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    31
// global
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    32
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    33
//static const QString kLoginURL = "http://www.facebook.com/login.php";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    34
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    35
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    36
void FBLoginDialog::connectToGetSession(const QString& aToken)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    37
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    38
	qDebug()<<"Inside FBLoginDialog::connectToGetSession()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    39
    iGetSessionRequest = FBRequest::requestWithSession(iSession);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    40
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    41
    //connect(iGetSessionRequest, SIGNAL(LoadLoginPage()), this, SLOT(LoadLoginPage()));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    42
    connect(iGetSessionRequest, SIGNAL(requestDidLoad(QVariant)), this, SLOT(requestDidLoad(QVariant)));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    43
    connect(iGetSessionRequest, SIGNAL(requestFailedWithNetworkError(QNetworkReply::NetworkError)), this, SLOT(requestFailedWithNetworkError(QNetworkReply::NetworkError)));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    44
    connect(iGetSessionRequest, SIGNAL(requestFailedWithFacebookError(FBError)), this, SLOT(requestFailedWithFacebookError(FBError)));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    45
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    46
    Dictionary params;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    47
    params["auth_token"] = aToken;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    48
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    49
    if (iSession->apiSecret().length())
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    50
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    51
        params["generate_session_secret"]="1";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    52
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    53
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    54
    if (iSession->getSessionProxy().length())
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    55
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    56
        iGetSessionRequest->post(iSession->getSessionProxy(),params);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    57
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    58
    else
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    59
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    60
        iGetSessionRequest->call("facebook.auth.getSession", params);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    61
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    62
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    63
void FBLoginDialog::connectToGetToken()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    64
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    65
		qDebug()<<"Inside FBLoginDialog::connectToGetToken()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    66
	    iGetSessionRequest = FBRequest::requestWithSession(iSession);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    67
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    68
	   // connect(iGetSessionRequest, SIGNAL(requestDidLoad(QVariant)), this, SLOT(requestDidLoad(QVariant)));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    69
	 //   connect(iGetSessionRequest, SIGNAL(requestFailedWithNetworkError(QNetworkReply::NetworkError)), this, SLOT(requestFailedWithNetworkError(QNetworkReply::NetworkError)));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    70
	  //  connect(iGetSessionRequest, SIGNAL(requestFailedWithFacebookError(FBError)), this, SLOT(requestFailedWithFacebookError(FBError)));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    71
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    72
	    Dictionary postParams;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    73
		iSession->stroauth_nonce = generateNONCE(43);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    74
		iSession->stroauth_timestamp = generateTimeStamp();//QString::number(generateTimeStamp());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    75
		qDebug()<<"iSession->stroauth_timestamp"<<iSession->stroauth_timestamp;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    76
		//postParams["oauth_callback"] = kBase;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    77
		postParams["oauth_consumer_key"] = kConsumerKey;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    78
		postParams["oauth_signature_method"] = "HMAC-SHA1";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    79
		postParams["oauth_timestamp"] = iSession->stroauth_timestamp;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    80
		postParams["oauth_nonce"] = iSession->stroauth_nonce;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    81
		postParams["oauth_version"] = "1.0";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    82
		FBRequest* req = FBRequest::requestWithSession(iSession);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    83
		iSession->stroauth_signature = req->generateSig(postParams);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    84
	    iGetSessionRequest->call("/uas/oauth/accessToken", postParams);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    85
	    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    86
	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    87
void FBLoginDialog::loadLoginPage()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    88
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    89
    iGetSessionRequest = FBRequest::requestWithSession(iSession);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    90
	qDebug()<<"Inside FBLoginDialog::loadLoginPage()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    91
    Dictionary getParams, postParams;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    92
    iSession->stroauth_nonce = generateNONCE(43);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    93
	iSession->stroauth_timestamp = generateTimeStamp();//QString::number(generateTimeStamp());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    94
	qDebug()<<"iSession->stroauth_timestamp"<<iSession->stroauth_timestamp;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    95
    postParams["oauth_callback"] = "oob";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    96
    postParams["oauth_consumer_key"] = kConsumerKey;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    97
    postParams["oauth_signature_method"] = "HMAC-SHA1";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    98
    postParams["oauth_timestamp"] = iSession->stroauth_timestamp;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    99
    postParams["oauth_nonce"] = iSession->stroauth_nonce;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   100
    postParams["oauth_version"] = "1.0";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   101
   /* FBRequest* req = FBRequest::requestWithSession(iSession);*/
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   102
    iSession->stroauth_signature = iGetSessionRequest->generateSig(postParams);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   103
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   104
    connect(iGetSessionRequest, SIGNAL(LoadLoginPage()), this, SLOT(LoadLoginPage()));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   105
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   106
    iGetSessionRequest->connect();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   107
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   108
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   109
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   110
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   111
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   112
  
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   113
    //loadURL(kRequestTokenUrl,QNetworkAccessManager::PostOperation, getParams, postParams);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   114
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   115
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   116
/*int FBLoginDialog::generateTimeStamp()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   117
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   118
		QDate oldDate;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   119
		oldDate.setYMD(1970,1,1);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   120
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   121
		QDateTime OldDateTime;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   122
		OldDateTime.setDate(oldDate);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   123
		QTime temp;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   124
		temp.setHMS(0,0,0,0);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   125
		OldDateTime.setTime(temp);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   126
		QDateTime CurTime = QDateTime::currentDateTime();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   127
		
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   128
		int timestamp = OldDateTime.secsTo(CurTime);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   129
		return timestamp;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   130
	}*/
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   131
QByteArray FBLoginDialog::generateTimeStamp()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   132
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   133
		uint time = QDateTime::currentDateTime().toTime_t();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   134
	    QByteArray timestamp = QByteArray::number( time );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   135
	    return timestamp;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   136
	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   137
QString FBLoginDialog::generateNONCE(const qint64 Length)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   138
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   139
	srand(time(0));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   140
	//QDateTime UniqueNumber = QDateTime::currentDateTime();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   141
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   142
	//read upto milliseconds
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   143
	QString RetString;//(UniqueNumber.toString("hh/mm/ss/zzz"));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   144
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   145
	QString Letters(
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   146
			"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   147
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   148
	//append a randomly generated string to RetString
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   149
	for (int i = 0; i < Length; i++)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   150
		{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   151
		RetString.insert((i), Letters.at(rand() % Letters.size()));
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
	return RetString;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   155
	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   156
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   157
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   158
FBLoginDialog::FBLoginDialog() : FBDialog () {}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   159
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   160
FBLoginDialog::FBLoginDialog(FBSession* aSession) : FBDialog(aSession) {}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   161
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   162
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   163
// FBDialog
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   164
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   165
void FBLoginDialog::load()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   166
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   167
	qDebug()<<"Inside FBLoginDialog::load()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   168
    loadLoginPage();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   169
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   170
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   171
void FBLoginDialog::dialogWillDisappear()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   172
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   173
	qDebug()<<"Inside FBLoginDialog::dialogWillDisappear()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   174
  iGetSessionRequest->cancel();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   175
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   176
  if (!iSession->isConnected())
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   177
  {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   178
      iSession->cancelLogin();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   179
  }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   180
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   181
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   182
void FBLoginDialog::GetSessionKey(const QUrl& aUrl)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   183
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   184
	qDebug()<<"Inside FBLoginDialog::GetSessionKey()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   185
    const QString authToken = "auth_token=";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   186
    const QString url ( aUrl.toString() );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   187
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   188
    int start = url.indexOf(authToken);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   189
    if (start != -1)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   190
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   191
        QString token;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   192
        int end = url.indexOf("&", start);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   193
        int delta = start + authToken.size() + 1;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   194
        if (end != -1)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   195
        {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   196
            token = url.mid(delta, end - delta );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   197
        }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   198
        else
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   199
        {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   200
            token = url.right(url.size() - delta + 1);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   201
        }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   202
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   203
        connectToGetSession(token);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   204
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   205
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   206
void FBLoginDialog::FetchKeyFromUrl(const QUrl& aUrl)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   207
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   208
    const QString url ( aUrl.toString() );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   209
    QStringList varList = url.split("{");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   210
    QString newvar = varList[1];
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   211
    varList.clear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   212
    varList = newvar.split(",");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   213
    QString session_key = varList[0];
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   214
    QString uid = varList[1];
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   215
    QString expires = varList[2];
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   216
    QString secret = varList[3];
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   217
    varList.clear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   218
    varList = session_key.split(":");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   219
    session_key = varList[1];
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   220
    session_key = session_key.mid(1,session_key.length()-2);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   221
    varList.clear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   222
    varList = uid.split(":");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   223
    uid = varList[1];
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   224
	varList.clear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   225
	varList = expires.split(":");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   226
	expires = varList[1];
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   227
	varList.clear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   228
	varList = secret.split(":");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   229
	secret = varList[1];
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   230
	secret = secret.mid(1,secret.length()-2);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   231
	varList.clear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   232
    qDebug()<<"session_key"<<session_key<<"\n";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   233
    qDebug()<<"uid"<<uid<<"\n";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   234
    qDebug()<<"expires"<<expires<<"\n";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   235
    qDebug()<<"secret"<<secret<<"\n";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   236
    uint expiry = expires.toUInt();//.toUInt(&conversionError);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   237
    QDateTime expiration; expiration.setTime_t( expiry );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   238
    iSession->beginSession(session_key, secret,expiration);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   239
    iSession->resume();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   240
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   241
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   242
// slots for signals from FBRequest
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   243
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   244
void FBLoginDialog::requestDidLoad(const QVariant& aResult)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   245
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   246
	qDebug()<<"Inside FBLoginDialog::requestDidLoad";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   247
    bool conversionError = false;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   248
    QVariantHash object = aResult.toHash();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   249
    QString sessionKey = object.value("session_key").toString();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   250
    QString sessionSecret = object.value("secret").toString();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   251
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   252
    QVariant ex = object.value("expires");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   253
    uint expires = object.value("expires").toUInt(&conversionError);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   254
    QDateTime expiration; expiration.setTime_t( expires );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   255
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   256
    iSession->beginSession(sessionKey, sessionSecret,expiration);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   257
    iSession->resume();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   258
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   259
    dismissWithSuccess(true, true);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   260
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   261
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   262
void FBLoginDialog::requestFailedWithFacebookError (const FBError& aCode )
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   263
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   264
	qDebug()<<"Inside FBLoginDialog::requestFailedWithFacebookError()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   265
    dismissWithError(aCode, true);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   266
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   267
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   268
void FBLoginDialog::requestFailedWithNetworkError( QNetworkReply::NetworkError aCode )
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   269
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   270
	qDebug()<<"Inside FBLoginDialog::requestFailedWithNetworkError()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   271
    dismissWithError(aCode, true);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   272
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   273
void FBLoginDialog::LoadLoginPage()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   274
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   275
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   276
	qDebug()<<"Enter: LoadLoginPage()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   277
	QString LoginUrl = "https://api.linkedin.com/uas/oauth/authorize?oauth_token=";//94ab03c4-ae2c-45e4-8732-0e6c4899db63";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   278
	LoginUrl += iSession->stroauth_Token;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   279
    proxysettings();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   280
	qDebug()<<"LoginUrl:"<<LoginUrl;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   281
	//TBuf<1024> sid(LoginUrl.utf16()); //uncomment to invoke browser
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   282
	//LaunchBrowserL(sid); //uncomment to invoke browser
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   283
	QNetworkRequest request;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   284
	QSslConfiguration config = request.sslConfiguration();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   285
	config.setProtocol(QSsl::SslV3);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   286
	request.setSslConfiguration(config);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   287
	request.setUrl(QUrl(LoginUrl));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   288
	iWebView->load(request,QNetworkAccessManager::PostOperation); //uncomment to invoke browser
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   289
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   290
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   291
	qDebug()<<"Exit: LoadLoginPage()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   292
	   
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   293
	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   294
void FBLoginDialog::LaunchBrowserL(const TDesC& aUrl)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   295
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   296
	qDebug()<<"Enter: LaunchBrowserL()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   297
	const TInt KWmlBrowserUid = 0x10008D39;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   298
	TUid id( TUid::Uid( KWmlBrowserUid ) );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   299
	TApaTaskList taskList( CEikonEnv::Static()->WsSession() );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   300
	TApaTask task = taskList.FindApp( id );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   301
	if ( task.Exists() )
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   302
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   303
		qDebug()<<"Inside: if()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   304
		HBufC8* param = HBufC8::NewLC( aUrl.Length() + 2);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   305
                //"4 " is to Start/Continue the browser specifying a URL
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   306
		param->Des().Append(_L("4 "));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   307
		param->Des().Append(aUrl);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   308
		task.SendMessage( TUid::Uid( 0 ), *param ); // Uid is not used
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   309
		CleanupStack::PopAndDestroy(param);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   310
	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   311
	else
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   312
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   313
		qDebug()<<"Inside: else()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   314
		HBufC16* param = HBufC16::NewLC( aUrl.Length() + 2);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   315
                //"4 " is to Start/Continue the browser specifying a URL
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   316
		param->Des().Append(_L("4 "));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   317
		param->Des().Append(aUrl);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   318
		RApaLsSession appArcSession;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   319
                // connect to AppArc server 
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   320
		User::LeaveIfError(appArcSession.Connect()); 
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   321
		TThreadId id;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   322
		appArcSession.StartDocument( *param, TUid::Uid( KWmlBrowserUid)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   323
                                                                       , id );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   324
		appArcSession.Close(); 
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   325
		CleanupStack::PopAndDestroy(param);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   326
	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   327
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   328
void FBLoginDialog::GetAccessToken()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   329
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   330
		/*qDebug()<<"Inside FBLoginDialog::GetAccessToken()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   331
	    Dictionary getParams, postParams;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   332
	    iSession->stroauth_nonce = generateNONCE(43);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   333
		iSession->stroauth_timestamp = generateTimeStamp();//QString::number(generateTimeStamp());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   334
		qDebug()<<"iSession->stroauth_timestamp"<<iSession->stroauth_timestamp;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   335
	  
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   336
	    postParams["oauth_consumer_key"] = kConsumerKey;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   337
	    postParams["oauth_signature_method"] = "HMAC-SHA1";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   338
	    postParams["oauth_timestamp"] = iSession->stroauth_timestamp;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   339
	    postParams["oauth_nonce"] = iSession->stroauth_nonce;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   340
	    postParams["oauth_version"] = "1.0";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   341
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   342
	    iSession->stroauth_signature = iGetSessionRequest->generateSig(postParams);*/
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   343
	}