Vonage Auth SDK for Node.js
This is the Vonage Server Client SDK for Node.js used to wrap the authentication
headers/signatures for use with Vonage APIs. To use
it you will need a Vonage account. Sign up for free at vonage.com.
For full API documentation refer to developer.vonage.com.
Installation
With NPM
npm install @vonage/server-client
With Yarn
yarn add @vonage/server-client
Usage
To create a client, you will need to pass in a @vonage/auth
object.
const { Auth } = require('@vonage/auth');
const { Client } = require('@vonage/server-client');
const vonageClient = new Client (new Auth({
apiKey: API_KEY,
apiSecret: API_SECRET,
applicationId: APP_ID,
privateKey: PRIVATE_KEY_PATH,
}),
options,
);
You will now be able to send requests using the client:
const response = await vonageClient.sendGetRequest('https://rest.nexmo.com/account/numbers')
Options
The constructor for the client takes in two parameters credentials
and
options
. credentials
is either an Auth
or an object
containing the settings from AuthInterface
.
options
allows adjusting api endpoints and the request timeout.
restHost: string
(optional) - Allows overwriting the default https://rest.nexmo.com
.apiHost: string
(optional) - Allows overwriting the default https://api.nexmo.com
.videoHost: string
(optional) - Allows overwriting the default https://video.api.vonage.com
.timeout: int
(optional) - Set a custom timeout for requests to Vonage in
milliseconds. Defaults to the standard for Node http requests, which is
120,000 ms.appendUserAgent: string
(optional) - Set a custom string to be added to the
user-agent
header for the request
File Downloads
When downloading files, the request needs to be built with proper security
headers set. Inside this package is the FileClient
which will handle the
request. You can download a file using the File Id or the FQURL.
const { Auth } = require('@vonage/auth');
const { FileClient } = require('@vonage/server-client');
const fileClient = new FileClient(new Auth({
apiKey: API_KEY,
apiSecret: API_SECRET,
applicationId: APP_ID,
privateKey: PRIVATE_KEY_PATH,
}),
options,
);
await fileClient.downloadFile('the-file-id-or-url', '/paht/to/save');
Testing
Run:
npm run test