SignedApi
SignedApi gem offers easy way to make your web APIs secure by using secret key based signature authentication.
This uses the similar way as AWS's signed URLs.
Installation
Add this line to your application's Gemfile:
gem 'signed_api'
And then execute:
$ bundle
Or install it yourself as:
$ gem install signed_api
Usage
Client side
You can easily sign your params by sign_params method
signed_params = SignedApi::sign_params('GET', '/api/search', {a: 'param_a', b: 'param_b', c: 'param_c'}, 'SOME_KEY', 'SOME_SECRET_STRING', 60)
or you can directly make a signed URL like this.
signed_url = SignedApi::get_signed_url('https://example.com', 'GET', '/api/search', {a: 'param_a', b: 'param_b', c: 'param_c'}, 'SOME_KEY', 'SOME_SECRET_STRING', 60)
Server side
You can verify the request easily.
begin
SignedApi::verify_signature!(method, path, params) {|key| secrets[key]}
rescue
end
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