Method: Pusher::Channel#authenticate

Defined in:
lib/pusher/channel.rb

#authenticate(socket_id, custom_data = nil) ⇒ Hash

Generate the expected response for an authentication endpoint. See pusher.com/docs/authenticating_users for details.

Examples:

Private channels

render :json => Pusher['private-my_channel'].authenticate(params[:socket_id])

Presence channels

render :json => Pusher['presence-my_channel'].authenticate(params[:socket_id], {
  :user_id => current_user.id, # => required
  :user_info => { # => optional - for example
    :name => current_user.name,
    :email => current_user.email
  }
})

Parameters:

  • socket_id (String)
  • custom_data (Hash) (defaults to: nil)

    used for example by private channels

Returns:

  • (Hash)

Raises:



158
159
160
161
162
163
164
# File 'lib/pusher/channel.rb', line 158

def authenticate(socket_id, custom_data = nil)
  custom_data = MultiJson.encode(custom_data) if custom_data
  auth = authentication_string(socket_id, custom_data)
  r = {:auth => auth}
  r[:channel_data] = custom_data if custom_data
  r
end