This addon provides an Ember integration for working with version 2.0 of the HTTP HMAC Specification. It wraps the http-hmac-javascript library and exposes signing capabilites via the request-signer service.
In order to generate the authorization headers the http-hmac-javascript library needs to know the realm, public key, and secret key to use. These values can be set either in the config/environment.js
file or directly on the request-signer service. Optionally, you can configure a list of headers that need to be included in the signature. This is an array of header names that will be included if present in the request.
The values can be set in the environment configuration by adding a section to your variables:
module.exports = function(environment) {
'ember-http-hmac': {
realm: 'your-realm',
publicKey: 'enter-your-public-key-here',
secretKey: 'enter-your-secret-key-here',
signedHeaders: ['header-name-1', 'header-name-2']
}
};
The same variables exist on the request-signer
servive provided by ember-http-hmac. Here is an example of setting the values within a component:
export default Ember.Component.extend({
requestSigner: Ember.inject.service();
init() {
this._super(...arguments);
let signer = this.get('requestSigner');
signer.set('realm', 'your-realm');
signer.set('publicKey', 'enter-your-public-key-here');
signer.set('secretKey', 'enter-your-secret-key-here');
signer.set('signedHeader', ['header-name-1', 'header-name-2']);
}
});
The basic signing functionality is available directly as the request-signer
service to use as needed.
This addon can be installed via standard ember addon installation procedures:
ember install ember-http-hmac
- Create a test helper to register support
- Add configuration to disable signed headers
git clone
this repositorynpm install
bower install
ember serve
- Visit your app at http://localhost:4200.
npm test
(Runsember try:each
to test your addon against multiple Ember versions)ember test
ember test --server
ember build
For more information on using ember-cli, visit https://ember-cli.com/.