Sha256: 2d9d86a7f6958c99e15c647df9a8e815f5628a0f28c3052946e9e6b1670cdf8e

Contents?: true

Size: 1.42 KB

Versions: 7

Compression:

Stored size: 1.42 KB

Contents

# 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](http://rubydoc.info/gems/ey-hmac)

## Usage

## Client Middleware

### Rack

Using ```Rack::Client```

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

### Faraday

```ruby
require 'ey-hmac/faraday'

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

## Server

### Rack

```ruby
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

```ruby
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

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ey-hmac-2.4.0 README.md
ey-hmac-2.3.1 README.md
ey-hmac-2.3.0 README.md
ey-hmac-2.2.0 README.md
ey-hmac-2.1.0 README.md
ey-hmac-2.0.2 README.md
ey-hmac-2.0.1 README.md