No release in over 3 years
Low commit activity in last 3 years
The gem provides easy & extendable way to perform JSON Web Token authentication.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

>= 1.7, < 3.0

Runtime

 Project Readme

JSON Web Token authentication Ruby service

The gem provides easy & extendable way to perform JSON Web Token authentication.

Usage

Please, see the code sample below.

module MyAPI
  #
  # Define JWT verification options using variables below:
  # 
  #   MY_API_JWT_VERIFY_EXP
  #   MY_API_JWT_VERIFY_NBF
  #   MY_API_JWT_ISS
  #   MY_API_JWT_VERIFY_IAT
  #   MY_API_JWT_VERIFY_JTI
  #   MY_API_JWT_AUD (could be comma-separated)
  #   MY_API_JWT_SUB
  #   MY_API_JWT_ALG (could be comma-separated)
  #   MY_API_JWT_LEEWAY
  #   MY_API_JWT_IAT_LEEWAY
  #   MY_API_JWT_EXP_LEEWAY
  #   MY_API_JWT_NBF_LEEWAY
  # 
  class JWTAuthenticator < JWT::Authenticator
    def call(*)
      payload, = super
      # You may want to do some additional checks here like verifying JTI is not revoked.
      # You also can return any value you want. For example, here we can return user.
      User.new(payload.slice(:uid, :email, :level)) 
    end

  protected
  
    def public_key(header)
      # You have to determine what key should be user for signature verification (based on «header») and return public key.
      # The returned value must be instance of OpenSSL::PKey::RSA.
    end
  end
end