wmt-marketplace-auth-canada
Version:
Generate the authentication headers required by Walmart Marketplace API.
98 lines (65 loc) • 2.47 kB
Markdown
# ${pkg.name}
${badge('npm')} ${badge('npm-license')} ${badge('github-issues')}
${pkg.description}
${badge('nodei')}
${badge('github-stars')}
${badge('github-forks')}
${badge('dependencies')}
${badge('devDependencies')}
## Features
- Returns the required authentication headers including the digital signature.
- Defaults the `Accept` and `Content-Type` headers to `application/json`, which can be changed to `application/xml` if XML is preferred.
- Generates a UUID for the `CorrelationId` if one is not specified for the request.
- Timestamp can be directly set or default to current time.
## Typical Usage
Set the custom headers, then use `Authenticate.sign()` for the specified request.
```javascript
import { Authenticate } from 'wmt-marketplace-auth';
let headers = new Authenticate.Custom;
headers.setCorrelationId('1234hfvgtr');
headers.setConsumer({
Channel: { Type: '38b7eb6c-3672-4022-93a2-f47794f36338' },
ConsumerId: 'f091ae58-774c-45ff-9d8a-e30a83344e42'
});
let request = {
RequestUrl: 'https://marketplace.walmartapis.com/v3/feeds',
PrivateKey: 'MIIBVgIBADANBgkqhkiG9w0BAQEFAASCAUAwggE8A...',
RequestMethod: 'GET'
}
let signedHeaders = Authenticate.sign(headers, request);
```
Outputs Authentication headers as an object.
```json
{
"WM_SVC.NAME": "Walmart Marketplace",
"WM_QOS.CORRELATION_ID": "1234hfvgtr",
"WM_SEC.TIMESTAMP": 1523287838530,
"WM_SEC.AUTH_SIGNATURE": "E1EPWiqwuLYceSVr2XGmljo7qq1+EDI5++1XvFcVf+/klas+mLMAJbDihfAwkjyDxi3WkJDdTCNfle0O+4V/9g==",
"WM_CONSUMER.CHANNEL.TYPE": "38b7eb6c-3672-4022-93a2-f47794f36338",
"WM_CONSUMER.ID": "f091ae58-774c-45ff-9d8a-e30a83344e42",
"Accept": "application/json",
"Content-Type": "application/json"
}
```
## Options
#### Change the `Accept` or `Content-Type` headers from JSON to XML.
```javascript
headers.Accept = 'application/xml';
headers.ContentType = 'application/xml';
```
#### Set a custom timestamp.
```javascript
headers.setTimestamp(1523287838530);
```
## Install
`npm install --save ${pkg.name}`
## Scripts
${scripts()}
## Dependencies
${dependencies()}
## Contributing
We are always excited when we can make our projects open source and allow contributors to build and work on these components. To make this possible, there are a few things we kindly ask all contributors to understand and follow. Please review the [Contributing Guide](https://www.makanal.eu/contributors/).
## Author
${author()}
## License
${license()}