Sha256: 92016f742fca0803d1ed2748142794208e2fb342028de531d2a5f34e3e4f1162

Contents?: true

Size: 800 Bytes

Versions: 41

Compression:

Stored size: 800 Bytes

Contents

require 'dotenv'
require 'jwt'
require 'sinatra'
Dotenv.load '.env'
set :show_exceptions, false

class InvalidTokenError < StandardError
end

def validate_token(env)
  auth0_client_id = ENV['AUTH0_CLIENT_ID']
  auth0_client_secret = ENV['AUTH0_CLIENT_SECRET']
  authorization = env['HTTP_AUTHORIZATION']
  raise InvalidTokenError if authorization.nil?
  decoded_token = JWT.decode(authorization.split(' ').last, JWT.base64url_decode(auth0_client_secret))
  raise InvalidTokenError if auth0_client_id != decoded_token[0]['aud']
  'You get this only if authenticated'
rescue JWT::DecodeError
  raise InvalidTokenError
end

error InvalidTokenError do
  'Invalid token'
end

get '/secured/ping' do
  validate_token env
  'All good. You can see it because token is valid'
end

get '/ping' do
  'ping'
end

Version data entries

41 entries across 41 versions & 1 rubygems

Version Path
auth0-5.18.0 examples/ruby-api/main.rb
auth0-5.16.0 examples/ruby-api/main.rb
auth0-5.15.0 examples/ruby-api/main.rb
auth0-5.14.2 examples/ruby-api/main.rb
auth0-5.14.1 examples/ruby-api/main.rb
auth0-5.14.0 examples/ruby-api/main.rb
auth0-5.13.0 examples/ruby-api/main.rb
auth0-5.12.0 examples/ruby-api/main.rb
auth0-5.11.0 examples/ruby-api/main.rb
auth0-5.10.0 examples/ruby-api/main.rb
auth0-5.9.0 examples/ruby-api/main.rb
auth0-5.8.1 examples/ruby-api/main.rb
auth0-5.8.0 examples/ruby-api/main.rb
auth0-5.7.0 examples/ruby-api/main.rb
auth0-5.6.1 examples/ruby-api/main.rb
auth0-5.6.0 examples/ruby-api/main.rb
auth0-5.5.0 examples/ruby-api/main.rb
auth0-5.4.0 examples/ruby-api/main.rb
auth0-5.3.0 examples/ruby-api/main.rb
auth0-5.2.0 examples/ruby-api/main.rb