Can you use cookies in a Cordova application?
Asked Answered
M

2

17

I have been building an android app using Ionic. At this point, I am under the impression that Cordova applications do not save or send the cookies that are served from a REST API server. If I run the application with the 'ionic serve' command I can see that my session and CSRF cookies are sent with my AJAX requests. However, when I run the code with the 'ionic emulate' command it does not appear that either are sent to my server.

I have seen some articles and threads that talk about using the setAcceptThirdPartyCookies() method in the class that extends CordovaActivity, but that hasn't worked for me.

I have tried using $httpProvider.defaults.withCredentials = true in my angular module config to no avail.

I have tried using ngCookies, but that doesn't appear to get a handle on the cookies from my API server either.

I just want to know once and for all if using cookies in a Cordova application is possible or not. If it isn't I will go with a token based approach. It would be nice to be able to use the same security configuration for the mobile app and web app though.

Malposition answered 30/6, 2015 at 13:17 Comment(1)
#15349737 This has already been posted before.Knuth
S
17

You can't use cookies, you should use localStorage

Browsers provide a convenient module for storing data in a simple key <-> value fashion called localStorage. This is an object on window that we can get and set String values easily

See this for details

Sidedress answered 30/6, 2015 at 13:30 Comment(2)
Thank you! You are suggesting to use local storage to store tokens for OAuth, OpenID, etc right?Malposition
Yes, you can do it. Consider that localStorage has security problems as cookies or sessions, see this. Protect you against XSS attackSidedress
C
4

No, you can't. I have also tried to use cookies in one of my applications, but it didn't work because the cookies are disabled in the new version of Android. I solved this problem by using the HTML5 localStorage API.

Coercive answered 30/6, 2015 at 13:28 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.