# holibobauth

> An HMAC authentication helper for the Holibob API

Latest version **1.0.5** (published 2020-09-30) · MIT license · 0 weekly downloads

## Install

```sh
npm install holibobauth
pnpm add holibobauth
yarn add holibobauth
bun add holibobauth
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.5 |
| Published | 2020-09-30 |
| First published | 2020-09-30 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 3.9 KB |
| Known vulnerabilities | 0 (+2 in 1 direct dependencies) |
| Install scripts | no |
| Author | Graeme Bryce |
| Maintainers | graeme.bryce |
| Keywords | holibob |

## Links

- npm: https://www.npmjs.com/package/holibobauth
- Repository: https://git-codecommit.eu-west-1.amazonaws.com/v1/repos/HolibobAuth
- npm.io page: https://npm.io/package/holibobauth

## Dependencies (2)

- [crypto-js](https://npm.io/package/crypto-js.md) 3.1.9-1
- [js-base64](https://npm.io/package/js-base64.md) ^2.5.0

## Recent versions

- 1.0.5 (latest) — 2020-09-30
- 1.0.4 — 2020-09-30
- 1.0.3 — 2020-09-30
- 1.0.2 — 2020-09-30
- 1.0.1 — 2020-09-30

## README

# HOLIBOB Auth

This plugin produces the necessary headers including the HMAC based authentication for requests to the Holibob API.

### You must call the function with the following args:

- **apiKey**: YOUR API KEY
- **secret**: YOU SECRET
- **body**: The full body of the request - ie the GQL query and variables
- **method**: OPTIONAL - Defaults to "POST"
- **path**: OPTIONAL - Defaults to "/graphql"

### The function returns an object containing the three headers that must be added to your request:

- **x-api-key**: YOUR API KEY
- **x-holibob-date**: THE CURRENT SYSTEM DATE TIME
- **x-holibob-signature**: A SIGNATURE - computed from a hash of the request, date and YOUR SECRET


### Implementation

Import the package

```
const holibobAuth = require("./index");
```

Setup the three required args.

*In the example below the body we are sending is the most simple, being a call for the welcome query that will return amongst other things your authentication status*

```
const apiKey = "YOUR_HOLIBOB_API_KEY";
const secret = "YOUR_HOLIBOB_SECRET";
const body = JSON.stringify({ query: "{ welcome }" });

const args = {
  apiKey,
  secret,
  body,
};
```

Pass the args to the package and retrieve the headers that are returned.

```
const holibobHeaders = holibobAuth(args);
```

Add any further headers that you may require such as content-Type, X-Holibob-Currency etc

```
const headers = { "Content-Type": "application/json", ...holibobHeaders };
```

**Finally**, send the request to the Holibob API using whatever http client you have selected.

---
_Source: https://npm.io/package/holibobauth · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
