session-cookies - Rails 5 Api 仅具有 React Native 每次新 session ID

标签 session-cookies react-native ruby-on-rails-5.1

  • 适用于 Android 的 React Native V 0.56
  • 仅限 Rails 5.1.3 API

我的 Rails 应用程序能够保留 session ,但在将 React Native 升级到 0.56 后,Rails 突然在每次 api 请求时创建一个新 session 。

无法理解为什么 session 每次都会重置。

我的 application.rb 看起来像这样

module AppService
    class Application < Rails::Application
        config.load_defaults 5.1
        config.middleware.use ActionDispatch::Flash
        config.middleware.use Rack::MethodOverride
        config.middleware.use ActionDispatch::Cookies

        config.api_only = true
        config.middleware.use ActionDispatch::Session::CookieStore, key: '_namespace_key'
    end
end

有人可以指出这可能是什么问题吗? 我该如何调试这个?

更新 深入挖掘我发现了这个 https://github.com/facebook/react-native/pull/19770

这似乎是 RN 0.56 的一个错误。有人可以建议如何解决这个问题吗?

最佳答案

我遇到了一个非常相似的问题,问题是,作为 React Native V 0.56 升级的一部分,我还必须将我的 Nodejs 版本升级到 8。在 Node8 中(甚至可能在以前的版本中) fetch() 需要 credentials: 'include' 选项来随请求发送 cookie。您的请求中没有 session cookie 可能是您的服务器每次创建新 session 的原因。

获取(网址,{ 方法:'获取', 凭证:“包括” })

这个SO question and answers可能会为问题和解决方案提供更多线索。

关于session-cookies - Rails 5 Api 仅具有 React Native 每次新 session ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51686107/

相关文章:

javascript - javascript 中的 JSESSIONID - Open Layers 3 如何获取它?

android-webview - Android WebView/CookieSyncManager中 session cookie的生命周期

android - 有没有办法在 React Native(适用于 Android)中添加视频元素?

javascript - 在react-native中在iOS设备中播放声音

javascript - map 函数中的 Switch 条件语句

rspec - 是什么让 Rspec 占用 4GB 内存来运行 500 个规范?

routes - 未定义的方法 `page_path'rails

javascript - express-session secret 应该是静态的还是动态的?

node.js - express-session:为什么在设置 session 信息之前执行重定向?

ruby-on-rails - 为什么 'ApplicationRecord.descendants.count' 给出 1 即使有很多 ApplicationRecord 的后代(继承模型)?