ruby – 应用程序和actioncable不会共享cookie
发布时间:2020-12-16 23:00:47 所属栏目:百科 来源:网络整理
导读:我正在使用设计进行身份验证,但是当我实现您的方法时,我得到“未经授权的连接尝试被拒绝” 经过几个小时的搜索,我发现: cookies.signed['user.id'] 返回零.在以下代码块中. def find_verified_user if verified_user = User.find_by(id: cookies.signed['us
我正在使用设计进行身份验证,但是当我实现您的方法时,我得到“未经授权的连接尝试被拒绝”
经过几个小时的搜索,我发现: cookies.signed['user.id'] 返回零.在以下代码块中. def find_verified_user if verified_user = User.find_by(id: cookies.signed['user.id']) verified_user else reject_unauthorized_connection end end 我检查了肯定有一个cookie,但它不包含Devise设置的cookie数据. 要检查’user.id’是否实际设置,我在视图中提升它.这是例外,返回用户ID Signed in as @#{cookies.signed[:username]}. - raise(cookies.signed['user.id'].inspect) %br/ %br/ #messages %br/ %br/ = form_for :message,url: messages_path,remote: true,id: 'messages-form' do |f| = f.label :body,'Enter a message:' %br/ = f.text_field :body %br/ = f.submit 'Send message' 我的问题/问题: 似乎cookie在actioncable服务器上不可用. https://github.com/stsc3000/actioncable-chat.git 解决方法
检查连接到Action Cable服务器的客户端JavaScript文件.有些教程你把它放在’app / assets / javascripts / application_cable.coffee’和其他’app / assets / javascripts / channels / index.coffee’中,但它看起来像这样:
#= require cable @App = {} App.cable = Cable.createConsumer("ws://cable.example.com:28080") 您需要WebSocket地址指向您的Cable服务器,并且该地址需要与您的应用程序的其余部分共享cookie命名空间.你很可能指向错误的地方,例如,如果你在本地工作,你需要改变: App.cable = Cable.createConsumer("ws://cable.example.com:28080") 至 App.cable = Cable.createConsumer("ws://localhost:28080") 假设您的Cable服务器正在端口28080上运行(在bin / cable可执行文件中指定).还要确保清除浏览器缓存,以便更新的文件是浏览器使用的文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |