你能在Cordova应用程序中使用cookies吗?

17

我一直在使用Ionic构建Android应用程序。目前为止,我的印象是Cordova应用程序不会保存或发送从REST API服务器提供的cookie。如果我使用“ionic serve”命令运行应用程序,我可以看到我的会话和CSRF cookie随着我的AJAX请求一起发送。但是,当我使用“ionic emulate”命令运行代码时,似乎都没有发送到我的服务器。

我看过一些文章和帖子,谈论了在扩展CordovaActivity的类中使用setAcceptThirdPartyCookies()方法,但这对我没有用。

我已经尝试在我的angular模块配置中使用$httpProvider.defaults.withCredentials = true,但无济于事。

我也尝试使用ngCookies,但那似乎也不能处理来自我的API服务器的cookie。

我只想知道在Cordova应用程序中是否可能使用cookie。如果不可能,我将采用基于令牌的方法。虽然使用相同的安全配置来处理移动应用和Web应用程序会很好。


这个问题之前已经发布过了。 - Whitebear
2个回答

17

你不能使用cookies,应该使用localStorage

浏览器提供了一个方便的模块,以简单的键值对方式存储数据,称为localStorage。这是一个可以轻松获取和设置字符串值的window对象

详情请查看此处


谢谢!您建议使用本地存储来存储OAuth、OpenID等令牌,对吗? - chriaass
是的,你可以做到。请注意localStorage存在安全问题,就像cookies或sessions一样,请参考这个链接。保护自己免受XSS攻击。 - Matteo Basso

4

不可以。我曾经在一个应用程序中尝试使用cookies,但由于新版Android中禁用了cookies,所以它没有起作用。通过使用HTML5 localStorage API,我解决了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接