Skip to content

matic-insurance/matic-jwt-wrapper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Matic::Jwt

Matic's implementation of JWT authentication.

Installation

Add this line to your application's Gemfile:

gem 'matic-jwt'

And then execute:

$ bundle

Or install it yourself as:

$ gem install matic-jwt

Usage

Plain Ruby

Use MaticJWT::Generator to create JWT tokens or headers:

generator = MaticJWT::Generator.new
token = generator.token_for('my_client', 'my_super_secret', additional_payload: 'test')
header = generator.authentication_header_for('my_client', 'my_super_secret', user_id: 'test@localhost.com')

With Grape

Use :jwt_auth strategy and provide secret.

   auth :jwt_auth, {
      secret: -> (client_name) { ::ApiClient.find_by!(name: client_name).secret }
   }

If you need to get any data from authentication payload use ::MaticJWT::Grape::Helper.

    module ApiHelper
       include ::MaticJWT::Grape::Helper
        
        def current_client
          @current_client ||= ::ApiClient.find_by!(name: client_name)
        end
    
        private
    
        def client_name
          auth_payload['client_name']
        end
    end 

Development

After checking out the repo, run bin/setup to install dependencies. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/matic-jwt.