【问题标题】:Can you use cookies in a Cordova application?您可以在 Cordova 应用程序中使用 cookie 吗?
【发布时间】:2015-09-17 07:32:49
【问题描述】:

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

我看到一些文章和主题讨论了在扩展 CordovaActivity 的类中使用 setAcceptThirdPartyCookies() 方法,但这对我不起作用。

我尝试在我的角度模块配置中使用 $httpProvider.defaults.withCredentials = true 无济于事。

我曾尝试使用 ngCookies,但这似乎也无法从我的 API 服务器获取 cookie 的句柄。

我只想一劳永逸地知道是否可以在 Cordova 应用程序中使用 cookie。如果不是,我将采用基于令牌的方法。不过,如果能够为移动应用和网络应用使用相同的安全配置,那就太好了。

【问题讨论】:

标签: cordova ionic-framework ionic ngcordova


【解决方案1】:

不,你不能。我也尝试在我的一个应用程序中使用 cookie,但它不起作用,因为 cookie 在新版本的 Android 中被禁用。我通过使用 HTML5 localStorage API 解决了这个问题。

【讨论】:

    【解决方案2】:

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

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

    详情请见this

    【讨论】:

    • 谢谢!您是建议使用本地存储来存储 OAuth、OpenID 等令牌吗?
    • 是的,你可以做到。考虑到 localStorage 作为 cookie 或会话存在安全问题,请参阅this。保护您免受 XSS 攻击
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    • 2016-07-29
    相关资源
    最近更新 更多