Class: JwtMiddleware
- Inherits:
-
Object
- Object
- JwtMiddleware
- Defined in:
- app/middleware/jwt_middleware.rb
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app) ⇒ JwtMiddleware
constructor
A new instance of JwtMiddleware.
Constructor Details
#initialize(app) ⇒ JwtMiddleware
Returns a new instance of JwtMiddleware.
7 8 9 |
# File 'app/middleware/jwt_middleware.rb', line 7 def initialize(app) @app = app end |
Instance Method Details
#call(env) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/middleware/jwt_middleware.rb', line 11 def call(env) auth_header = env['HTTP_AUTHORIZATION'] if auth_header && auth_header.start_with?('Bearer ') token = auth_header.split(' ').last begin secret = ENV['JWT_SECRET'] || 'one-for-all-secret-key' if defined?(JWT) decoded_token = JWT.decode(token, secret, true, { algorithm: 'HS256' }) env['current_user_id'] = decoded_token[0]['user_id'] env['jwt_payload'] = decoded_token[0] end rescue JWT::DecodeError # If token is invalid, we don't halt here, just don't set current_user_id rescue NameError # JWT not defined end end @app.call(env) end |