phoenix_rails 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cba3a90d1406cd914f385cf34a621a874f6b8ecc
4
- data.tar.gz: 0c039add1bce2539e7e57cc9f493e6d62b70f5d3
3
+ metadata.gz: 8268589d0a66612c558723423666c396842f393a
4
+ data.tar.gz: b4a5ceb4ac3973db76bb278bfb25b54ab327f1a3
5
5
  SHA512:
6
- metadata.gz: 8a665e679f72d1b710b4d579b113b0920a0f74a03e68cd11acb1a0a2d69d3e3499ac2427221d7d17c95201311cc67063a7606f7edc7827b18c5751d05d0c414b
7
- data.tar.gz: f4defb8ff94eb68dcb33046ea5b2ae5ff2e86f3e862e77af345f0ff0959d7a74dbe3354fe66581cb11acebd56654ebff1b67ded26f782e3fc38b994a569ecae6
6
+ metadata.gz: 0087cbbedb81696aa72f95b33979d5553127319f492c8f58ea4bb270ac5bc508cd2748df85fe8ca453382923e2fa8c4a3ed2ad7885829d3bd73a0cdff624cfc0
7
+ data.tar.gz: e391b20bb4d241b1ca3b1f4eb28479d9f9c75dc423656b09a14a3ccb237923ed53c6e9d26fbe19a35fa6184e44a0b3c3cfceb9080e286b6a1f4cfbf19ef49207
@@ -48,62 +48,6 @@ module PhoenixRails
48
48
  @client.get("/channels/#{name}/users")[:users]
49
49
  end
50
50
 
51
- # Compute authentication string required as part of the authentication
52
- # endpoint response. Generally the authenticate method should be used in
53
- # preference to this one
54
- #
55
- # @param socket_id [String] Each PhoenixRails socket connection receives a
56
- # unique socket_id. This is sent from phoenix.js to your server when
57
- # channel authentication is required.
58
- # @param custom_string [String] Allows signing additional data
59
- # @return [String]
60
- #
61
- def authentication_string(socket_id, custom_string = nil)
62
- validate_socket_id(socket_id)
63
-
64
- unless custom_string.nil? || custom_string.kind_of?(String)
65
- raise Error, 'Custom argument must be a string'
66
- end
67
-
68
- string_to_sign = [socket_id, name, custom_string].
69
- compact.map(&:to_s).join(':')
70
- PhoenixRails.logger.debug "Signing #{string_to_sign}"
71
- token = @client.authentication_token
72
- digest = OpenSSL::Digest::SHA256.new
73
- signature = OpenSSL::HMAC.hexdigest(digest, token.secret, string_to_sign)
74
-
75
- return "#{token.key}:#{signature}"
76
- end
77
-
78
- # Generate the expected response for an authentication endpoint.
79
- #
80
- # @example Private channels
81
- # render :json => PhoenixRails['private-my_channel'].authenticate(params[:socket_id])
82
- #
83
- # @example Presence channels
84
- # render :json => PhoenixRails['private-my_channel'].authenticate(params[:socket_id], {
85
- # :user_id => current_user.id, # => required
86
- # :user_info => { # => optional - for example
87
- # :name => current_user.name,
88
- # :email => current_user.email
89
- # }
90
- # })
91
- #
92
- # @param socket_id [String]
93
- # @param custom_data [Hash] used for example by private channels
94
- #
95
- # @return [Hash]
96
- #
97
- # @private Custom data is sent to server as JSON-encoded string
98
- #
99
- def authenticate(socket_id, custom_data = nil)
100
- custom_data = MultiJson.encode(custom_data) if custom_data
101
- auth = authentication_string(socket_id, custom_data)
102
- r = {:auth => auth}
103
- r[:channel_data] = custom_data if custom_data
104
- r
105
- end
106
-
107
51
  private
108
52
 
109
53
  def validate_socket_id(socket_id)
@@ -1,5 +1,3 @@
1
- require 'signature'
2
-
3
1
  module PhoenixRails
4
2
  class Client
5
3
  attr_accessor :scheme, :host, :port, :key, :secret
@@ -74,10 +72,6 @@ module PhoenixRails
74
72
  post('/events', trigger_params(channels, event_name, data, params))
75
73
  end
76
74
 
77
- def authentication_token
78
- Signature::Token.new(@key, @secret)
79
- end
80
-
81
75
  # @private Construct a net/http http client
82
76
  def http_client
83
77
  @client ||= begin
@@ -1,4 +1,4 @@
1
- require 'signature'
1
+ require 'jwt'
2
2
  require 'digest/md5'
3
3
  require 'multi_json'
4
4
 
@@ -11,9 +11,8 @@ module PhoenixRails
11
11
  @head = { 'Content-Type' => 'application/json'}
12
12
  @body = body
13
13
 
14
- request = Signature::Request.new(verb.to_s.upcase, uri.path, params)
15
- request.sign(client.authentication_token)
16
- @params = request.signed_params
14
+ token = JWT.encode @body, client.secret, 'HS256'
15
+ @head[:Authorization] = "Bearer #{token}"
17
16
  end
18
17
 
19
18
  def send
data/lib/phoenix_rails.rb CHANGED
@@ -10,7 +10,7 @@ module PhoenixRails
10
10
  def_delegators :default_client, :scheme, :host, :port, :key, :secret
11
11
  def_delegators :default_client, :scheme=, :host=, :port=, :key=, :secret=
12
12
 
13
- def_delegators :default_client, :authentication_token, :url
13
+ def_delegators :default_client, :url
14
14
  def_delegators :default_client, :encrypted=, :url=
15
15
  def_delegators :default_client, :timeout=, :connect_timeout=, :send_timeout=, :receive_timeout=, :keep_alive_timeout=
16
16
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phoenix_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nguyen Le
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: jwt
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.5.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.5.0
41
55
  description: Gem for pushing event to a Phoenix server for realtime
42
56
  email: nathanle89@gmail.com
43
57
  executables: []