EPB Authentication and Authorisation Tools
This RubyGem provides a set of tools to use along with communitiesuk/epb-auth-server. There are two primary components: middleware for validating JWTs in sinatra apps, and a HTTP client that provides a mechanism for making authenticated requests.
Getting set up
Install
To install all required libs and other info, run make install.
Testing
To test the gem, run make test.
Syntax Cleanup
To ensure that all your code looks nice and conforms to the repo standards, run
make format.
Sinatra Conditional Routing
The epb-auth-tools module has a sinatra conditional routing helper class.
To use this simply require epb-auth-tools and define the following in your
application class.
# frozen_string_literal: true
require 'sinatra'
require 'epb-auth-tools'
class AppService < Sinatra::Base
set(:jwt_auth) do
condition do
Auth::Sinatra::Conditional.process_request env
rescue Auth::Errors::Error => e
content_type :json
halt 401, { error: e }.to_json
end
end
get '/', jwt_auth: [] do
content_type :json
status 200
{ message: 'authenticated' }.to_json
end
end