我用Devise对ActionCable进行了身份验证,实现了一个基本的聊天功能。
module ApplicationCable
class Connection < ActionCable::Connection::Base
identified_by :current_user
def connect
self.current_user = find_verified_user
logger.add_tags 'ActionCable', current_user.email
end
protected
def find_verified_user # this checks whether a user is authenticated with devise
if verified_user = env['warden'].user
verified_user
else
reject_unauthorized_connection
end
end
end
end
但是当用户有一个开放的聊天并且拒绝连接(因为用户已注销),我需要显示一个登录界面。
问题在于前端无法获取断开连接的原因。
如何发送带有参数的拒绝连接,比如“未经授权”?