remondo
remondo

Reputation: 151

How do I set a cookie in iOS Phonegap?

I'm using the reddit API and can successfully login and receive a cookie value in return. The code I use is as follows

loginPost = $.ajax({
type: 'POST',
url: 'http://www.reddit.com/api/login/' + username + '?user=' + username + '&passwd=' + password + '&api_type=json',
xhrFields: {
    withCredentials: true
},
dataType: "json",
success: function() {
    console.log("Define response variables");
    var header = loginPost.getAllResponseHeaders();
    var responseText = loginPost.responseText;
    var match = header.match(/(Set-Cookie|set-cookie): reddit_session=(.+?);/);
    if (match) {
        reddit_session = match[2];
        window.localStorage.setItem("reddit_session", reddit_session);
        window.localStorage.setItem("reddit_username", username);
        window.localStorage.setItem("reddit_password", password);
        console.log("Logged in!");
        //alert(responseText);
        $('.loginWrapper').slideUp('fast', function() {
            $('#feedWrapper').css("top", "44px");
            $('#feedWrapper').css("bottom", "0");
            // Animation complete.
        });
    }

    else {
        reddit_session = null;
        window.localStorage.setItem("reddit_session", null);
        navigator.notification.alert('Your username or password is incorrect. Please try again.');
        console.log("Login Failed");
    }

},
});

I am storing the cookie using

var header = loginPost.getAllResponseHeaders();
var match = header.match(/(Set-Cookie|set-cookie): reddit_session=(.+?);/);
                                          if(match){
                                          reddit_session = match[2];
                                          window.localStorage.setItem("reddit_session", reddit_session);

But the cookie isn't sent with a simple request to http://www.reddit.com/api/me.json. All that is returned is an empty JSON response like this {}. If I browse to that link in my browser (and am, of course, logged into reddit) it returns a JSON string with all the user data.

Any idea how I can store the cookie so that it is usable in a UIWebView?

Upvotes: 3

Views: 410

Answers (1)

Cord
Cord

Reputation: 196

Any idea how I can store the cookie so that it is usable in a UIWebView?

It appears that iOS cookies have been problematic since phonegap 2.5; please see [Handling cookies in PhoneGap/Cordova

I can't see any more current (phonegap 3.3) info [http://docs.phonegap.com/en/3.3.0/_index.html]

Upvotes: 1

Related Questions