read

Variables:

<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"> SESSION_COOKIE_AGE = 20000000 #Seconds
SESSION_COOKIE_NAME='sessionid'
SESSION_ENGINE = 'django.contrib.sessions.backends.db'
</pre>

1 WS Login (DJANGO - SERVER):

<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"> def login(request):
// Must return in someway request.session._session_key
</pre>

2 (PHONEGAP - CLIENT ) Send in the request cookie the session id (based on SESSION_COOKIE_NAME), in this case is using phonegap and FileTransfer object:


<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"> // Specify transfer options
var options = new FileUploadOptions();

options.fileKey = "file";
options.fileName = "file.txt";
options.mimeType = "text/plain"
options.chunkedMode = false;//Streaming mode
options.headers = {
'Connection': "close",

// SESSION_ID must be the sessionid that the login ws returned
'Cookie':'sessionid=' + <SESSION_ID>
};



// Transfer picture to server
var ft = new FileTransfer();

// successCallback(image), failureCallback(image, error)
ft.upload(fileUri, url, successCallback, failureCallback,options);
</pre>


3 (DJANGO - SERVER):WS Authenticate (check if Session is valid):

<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"> def authenticate(request):
try:
session = Session.objects.get(session_key = request.session._session_key)
session.get_decoded()[auth.SESSION_KEY]
// If the code continue without exception the session is alive!
except Session.DoesNotExist:
response_data = {'message':'Your login session has ended.', 'result':False}
</pre>

Blog Logo

Daniel Gomez Rico


Published

Image

MakinGIANTS

The findings and tips records of an Android-iOS-TheWholeShabang group

Back to Overview