Rails 5 Api 每次只有 React Native 新会话 ID
Posted
技术标签:
【中文标题】Rails 5 Api 每次只有 React Native 新会话 ID【英文标题】:Rails 5 Api Only with React Native New Session Id Each Time 【发布时间】:2019-01-12 03:25:54 【问题描述】: 适用于 android 的 React Native V 0.56 仅限 Rails 5.1.3 API我的 Rails 应用程序能够保持会话,但在将 React Native 升级到 0.56 后,Rails 会在每次 api 请求时创建一个新会话。
无法理解为什么每次都会重置会话。
我的 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 的错误。有人可以建议如何解决这个问题吗?
【问题讨论】:
【参考方案1】:我遇到了一个非常相似的问题,问题是,作为 React Native V 0.56 升级的一部分,我还必须将我的 nodejs 版本升级到 8。在 node8 中(甚至可能在以前的版本中)fetch()
需要 @987654324 @ 选项发送带有请求的 cookie。您的请求中没有会话 cookie 可能是您的服务器每次都创建新会话的原因。
fetch(url,
method: 'GET',
credentials: 'include'
)
这个SO question and answers 可能会更深入地了解问题和解决方案。
【讨论】:
对我来说,这适用于 android 而不是 ios。 对于其他读者,此问题再次出现在最新版本,即 iOS 中的 0.57 RN。更多信息在这里.. ***.com/questions/54163056/…以上是关于Rails 5 Api 每次只有 React Native 新会话 ID的主要内容,如果未能解决你的问题,请参考以下文章
Rails 6 API + React + Google login:登录后如何授权用户访问某些服务器路由?
如何在 ActionCable rails-5-api 应用程序中获取 current_user?
无法从 react-admin 访问由 rails 开发的 API
根据我在 rails/react 应用程序上的 api 调用状态更新我的视图