class Cerberus::Jwt
Constants
- JWT_ERRORS
- JWT_OPTIONS
- JWT_RSA_PUBLIC
Public Class Methods
new(app)
click to toggle source
# File lib/cerberus/jwt.rb, line 43 def initialize(app) @app = app end
respond_with(status_code, message)
click to toggle source
# File lib/cerberus/jwt.rb, line 62 def self.respond_with(status_code, message) [status_code, { "Content-Type" => "text/plain" }, [message]] end
Public Instance Methods
call(env)
click to toggle source
# File lib/cerberus/jwt.rb, line 47 def call(env) if Cerberus.config.jwt.enabled.call(env) auth_token = env.fetch("HTTP_AUTHORIZATION").gsub(/bearer /i, "") _payload, _header = JWT.decode(auth_token, JWT_RSA_PUBLIC, true, JWT_OPTIONS) end @app.call(env) rescue StandardError => error if JWT_ERRORS.keys.include?(error.class) self.class.respond_with(*JWT_ERRORS.fetch(error.class).values) else raise error end end