I am developing a mobile app using WorkLight 5.0.6 and I would like to attach a secure cookie to the response returned by an adapter.
We are not using a WorkLight Au
I would suggest trying to create a custom Worklight authenticator that communicates with your backend. Documentation for a custom authenticator can be found here:
http://public.dhe.ibm.com/software/mobile-solutions/worklight/docs/v600/08_04_Custom_Authenticator_and_Login_Module.pdf
To answer your question, here is how I would approach it without using a custom authenticator:
function authenticate(username, password){
var invocationData = { adapter : 'authenticationAdapter', procedure : 'authenticate', parameters : [username, password] }; WL.Client.invokeProcedure(invocationData, { onSuccess : authSuccess, onFailure : authFailure });
}
function authSuccess(response){ console.log("Auth Success"); var myCookie = response.invocationResult.responseHeaders.CookieName // Save cookie somehow }
function adapterRequestForProtectedResource(){
var mySecureCookie = getMyCookieFromLocalStorage();
var invocationData = { adapter : 'protectedResourceAdapter', procedure : 'getResource', parameters : [mySecureCookie] }; WL.Client.invokeProcedure(invocationData, { onSuccess : success, onFailure : failure });
}
On the adapter, set the cookie in the header
function getResource(secureCookie) {
// Secure cookie must be of the form: "CookieName=cookievalue"
var input = {
method : 'get',
returnedContentType : 'json',
path : "/resource",
headers: {"Cookie": secureCookie}
};
return WL.Server.invokeHttp(input);
}