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
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
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request