Module: AnyCable::Rails::Ext::JWT
- Defined in:
- lib/anycable/rails/ext/jwt.rb
Overview
This module adds AnyCable JWT helpers to Action Cable
Instance Method Summary collapse
- #anycable_jwt_present? ⇒ Boolean
-
#handle_open ⇒ Object
Handle expired tokens here to respond with a different disconnect reason.
- #identify_from_anycable_jwt! ⇒ Object
Instance Method Details
#anycable_jwt_present? ⇒ Boolean
16 17 18 19 |
# File 'lib/anycable/rails/ext/jwt.rb', line 16 def anycable_jwt_present? request.params[AnyCable.config.jwt_param].present? || request.headers["x-#{AnyCable.config.jwt_param}"].present? end |
#handle_open ⇒ Object
Handle expired tokens here to respond with a different disconnect reason
9 10 11 12 13 14 |
# File 'lib/anycable/rails/ext/jwt.rb', line 9 def handle_open super rescue AnyCable::JWT::ExpiredSignature logger.error "An expired JWT token was rejected" close(reason: "token_expired", reconnect: false) end |
#identify_from_anycable_jwt! ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/anycable/rails/ext/jwt.rb', line 21 def identify_from_anycable_jwt! token = request.params[AnyCable.config.jwt_param].presence || request.headers["x-#{AnyCable.config.jwt_param}"].presence identifiers = AnyCable::JWT.decode(token) identifiers.each do |k, v| public_send("#{k}=", v) end rescue AnyCable::JWT::VerificationError end |