createApiKey

Available since 7.1.0 Available since Kuzzle 2.1.0

Creates a new API key for a user.


Copied to clipboard!
createApiKey(userId, description, [options]);

Property Type Description
userId
string
User kuid
description
string
API key description
options
object
Additional options

options

Additional query options

Property Type
(default)
Description
expiresIn
string/number

(-1)
Expiration duration
_id
string

(null)
API key unique ID
refresh
boolean

(false)
If set to wait_for, Kuzzle will not respond until the API key is indexed

Notes:

  • expiresIn:
    • if a raw number is provided (not enclosed between quotes), then the expiration delay is in milliseconds. Example: 86400000
    • if this value is a string, then its content is parsed by the ms library. Examples: "6d", "10h"
    • if -1 is provided, the token will never expire

Resolves

An object containing the newly created API key:

Name Type Description
_id
string
ID of the newly created API key
_source
object
API key content

The API key content has the following properties:

Name Type Description
userId
string
User kuid
expiresAt
number
Aexpiration date in UNIX micro-timestamp format (-1 if the token never expires)
ttl
number
Original TTL
description
string
API key description
token
string
Authentication token associated with this API key

The authentication token token will never be returned by Kuzzle again. If you lose it, you'll have to delete the API key and recreate a new one.

Usage

Copied to clipboard!
try {
  const apiKey = await kuzzle.security.createApiKey('john.doe', 'Sigfox API key');

  console.log(apiKey);
  /*
  {
    _id: '-fQRa28BsidO6V_wmOcL',
    _source: {
      description: 'Sigfox API key',
      userId: 'john.doe',
      expiresAt: -1,
      ttl: -1,
      token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiJqb2huLmRvZSIsImlhdCI6MTU3ODA0OTMxMn0.XO_keW6EtsCGmPzxVJCChU9VREakEECDGg-N5lhCfF8'
    }
  }
  */

  console.log('API key successfully created');
} catch (e) {
  console.error(e);
}