HMAC signing library
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.gitignore
.travis.yml
CHANGELOG.md
Gemfile
LICENSE.txt
README.md
Rakefile
ey-hmac.gemspec

README.md

Ey::Hmac

Lightweight libraries and middlewares to perform HMAC signing and verification

Installation

Add this line to your application's Gemfile:

gem 'ey-hmac'

And then execute:

$ bundle

Or install it yourself as:

$ gem install ey-hmac

Documentation

rdoc.info

Usage

Client Middleware

Rack

Using Rack::Client

client = Rack::Client.new do
  use Ey::Hmac::Rack, key_id, key_secret
  run app
end

Faraday

require 'ey-hmac/faraday'

connection = Faraday.new do |c|
  c.use :hmac, key_id, key_secret
  c.adapter(:rack, app)
end

Server

Rack

app = lambda do |env|
  authenticated = Ey::Hmac.authenticated?(env, adapter: Ey::Hmac::Adapter::Rack) do |auth_id|
    (auth_id == key_id) && key_secret
  end
  [(authenticated ? 200 : 401), {"Content-Type" => "text/plain"}, []]
end

Rails

Ey::Hmac.authenticated?(request.env) do |auth_id|
  if consumer_credential = ConsumerCredential.where(deleted_at: nil, auth_id: auth_id).first
    consumer = consumer_credential.try(:consumer)
    consumer && consumer.enabled && consumer_credential.auth_key
  end
end && consumer

Contributing

  1. Fork it
  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 new Pull Request