FaradayMiddleware for Escher secure authorization
escher sign and validation for faraday http rest client
Installation
Add this line to your application's Gemfile:
gem 'faraday_middleware-escher'
And then execute:
$ bundle
Or install it yourself as:
$ gem install faraday_middleware-escher
Usage
for sign requests
The FaradayMiddleware::Escher::RequestSigner will help you sign your requests before sending them
require 'faraday_middleware/escher'
conn = Faraday.new do |builder|
builder.use FaradayMiddleware::Escher::RequestSigner,
credential_scope: CredentialScope,
options: AuthOptions,
active_key: -> { Escher::Keypool.new.get_active_key('EscherExample') }
builder.adapter :net_http
end
Response Validator
The FaradayMiddleware::Escher::ResponseValidator will help you authenticate responses on receiving
require 'faraday_middleware/escher'
conn = Faraday.new do |builder|
builder.use FaradayMiddleware::Escher::ResponseValidator,
credential_scope: CredentialScope,
options: AuthOptions,
keydb_constructor: -> { Escher::Keypool.new.get_key_db }
builder.adapter :net_http
end
You can mix the two in one case
Who loves Man in the Middle? If you not, this is your setup!
require 'faraday_middleware/escher'
conn = Faraday.new do |builder|
builder.use FaradayMiddleware::Escher::RequestSigner,
credential_scope: CredentialScope,
options: AuthOptions,
active_key: -> { Escher::Keypool.new.get_active_key('EscherExample') }
builder.use FaradayMiddleware::Escher::ResponseValidator,
credential_scope: CredentialScope,
options: AuthOptions,
keydb_constructor: -> { Escher::Keypool.new.get_key_db }
builder.adapter :net_http
end
Contributing
- Fork it ( https://github.com/[my-github-username]/faraday_middleware-escher/fork )
- 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 a new Pull Request