Repository is archived
Low commit activity in last 3 years
Rack middleware that provides authentication based on CloudFlare JSON Web Tokens.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 1.16.2
>= 1.0.0
>= 12.0.0
>= 3.8.0
>= 0.16.0
>= 3.8.0

Runtime

>= 0
>= 0.4.0
>= 2.2, < 2.7
 Project Readme

Rack::CloudflareJwt

CircleCI

About

This gem provides CloudFlare JSON Web Token (JWT) based authentication.

Requirements

  • Ruby 2.6.0 or greater

Installation

Add this line to your application's Gemfile:

gem 'rack-cloudflare-jwt'

And then execute:

$ bundle install

Or install it directly with:

$ gem install rack-cloudflare-jwt

Usage

Rack::CloudflareJwt::Auth accepts configuration options. All options are passed in a single Ruby Hash<String, String>. E.g. { '/admin' => 'aud-1', '/manager' => 'aud-2' }.

  • Hash key : String : A path string representing paths that should be checked for the presence of a valid JWT token. Includes sub-paths as of specified path as well (e.g. /docs includes /docs/some/thing.html also). Each path should start with a /. If a path doesn't matches the current request path this entire middleware is skipped and no authentication or verification of tokens takes place.

  • Hash value : String : A Application Audience (AUD) Tag.

Also, you should provide a Team Domain.

Rails

Rails.application.config.middleware.use Rack::CloudflareJwt::Auth, 'my-team-domain.cloudflareaccess.com',
                                                                   '/my-path-1' => 'aaa.bbb.ccc'
                                                                   '/my-path-2' => 'xxx.yyy.zzz',

Contributing

  1. Fork it ( https://github.com/Shuttlerock/rack-cloudflare-jwt/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request