example/LinkedInAuthApp/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, 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
	}