Как получить request.session внутри канала ActionCable?

Есть ли способ получить (или передать от Connection) данные запроса (на самом деле мне нужно session[:_csrf_token], не спрашивайте зачем) в Channel? Например:

class MeetingChannel < ApplicationCable::Channel
  def subscribed
    session[:_csrf_token]
  end
end

На данный момент я мог получить только csrf_token в Connection:

module ApplicationCable
  class Connection < ActionCable::Connection::Base
    def connect
      puts "**********************************************************"
      puts "CSRF token: #{request.session[:_csrf_token]}"
      puts "**********************************************************"
    end
  end
end

Выдает (при подключении):

**********************************************************
CSRF token: u33bsVI7HnF2bqWRfkriQUlLzIUpCcDVovgRTAkoGKM=
**********************************************************

person Kavachaj    schedule 05.11.2019    source источник


Ответы (1)


В соединении мы создаем этот метод (из-за того, что @request является закрытым):

def session
  @request.session
end

Затем в канале вы можете получить доступ к сеансу следующим образом:

session = connection.session
person erandros    schedule 29.01.2020