Sha256: 90eb7692988906a5a45eb7fa2bd201e0c1efcdc7c560d40ac11cc373c56c08a0

Contents?: true

Size: 1.42 KB

Versions: 9

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.request :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

9 entries across 9 versions & 1 rubygems

Version Path
ey-hmac-2.0.0 README.md
ey-hmac-1.0.0 README.md
ey-hmac-0.1.3 README.md
ey-hmac-0.1.2 README.md
ey-hmac-0.1.1 README.md
ey-hmac-0.0.5 README.md
ey-hmac-0.0.4 README.md
ey-hmac-0.0.3 README.md
ey-hmac-0.0.2 README.md