ruby-on-rails – ActionCable – 无法升级到WebSocket
发布时间:2020-12-17 04:13:42 所属栏目:百科 来源:网络整理
导读:我有连接到Web套接字的问题.有一个错误: Successfully upgraded to WebSocket (REQUEST_METHOD: GET,HTTP_CONNECTION: Upgrade,HTTP_UPGRADE: websocket) User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" IS NULL LIMIT ? [["LIMIT",1
我有连接到Web套接字的问题.有一个错误:
Successfully upgraded to WebSocket (REQUEST_METHOD: GET,HTTP_CONNECTION: Upgrade,HTTP_UPGRADE: websocket) User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" IS NULL LIMIT ? [["LIMIT",1]] An unauthorized connection attempt was rejected Failed to upgrade to WebSocket (REQUEST_METHOD: GET,HTTP_UPGRADE: websocket) Finished "/cable/" [WebSocket] for 127.0.0.1 at 2016-09-11 18:57:49 +0200 Finished "/cable/" [WebSocket] for 127.0.0.1 at 2016-09-11 18:57:49 +0200 connection.rb module ApplicationCable class Connection < ActionCable::Connection::Base identified_by :current_user def connect self.current_user = find_verified_user logger.add_tags 'ActionCable',"User #{current_user.id}" end protected def find_verified_user if verified_user = User.find_by(id: cookies.signed[:user_id]) verified_user else reject_unauthorized_connection end end end end 我找到了一些我应该使用config.allowed_request_origins的解决方案,但它无法解决我的问题.我通过添加此方法尝试使用session_helper: def set_cookie(user) the_username = user.username.to_s cookies.permanent.signed[:username] = the_username end 没有什么能解决我的问题. 更新: 解决方法
我使用env [‘warden’].用户解决了我的问题.以下是更新方法.
def find_verified_user (current_user = env['warden'].user) ? current_user : reject_unauthorized_connection end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |