refreshToken #
Refreshes a valid, non-expired authentication token.
If this action is successful, then the jwt property of this class instance is set to the new authentication token.
All further requests emitted by this SDK instance will be on behalf of the authenticated user, until either the authenticated token expires, the logout action is called, or the jwt
property is manually set to another value.
Arguments #
refreshToken ([options])
Arguments | Type | Description |
---|---|---|
options | object | Query options |
options #
Additional query options
Property | Type (default) | Description |
---|---|---|
expiresIn | string | Expiration time in ms library format. (e.g. 2h ) |
queuable | boolean ( true ) | If true, queues the request during downtime, until connected to Kuzzle again |
expiresIn #
The default value for the expiresIn
option is defined at server level, in Kuzzle's configuration file.
Resolves #
The refreshToken
action resolves to a token object with the following properties:
Property | Type | Description |
---|---|---|
_id | string | User unique identifier (kuid) |
expiresAt | number | Expiration timestamp in Epoch-millis format (UTC) |
jwt | string | Authentication token |
ttl | number | Time to live of the authentication token, in milliseconds |
Usage #
const credentials = { username: 'foo', password: 'bar' };
try {
const jwt = await kuzzle.auth.login('local', credentials);
// Prints the encrypted authentication token
console.log(jwt);
// Note: to get a different token, you actually need to wait at least
// 1 second. Otherwise you do receive a refreshed token, but with the exact
// same caracteristics, as the key depends on the timestamp in Epoch format
await new Promise(resolve => setTimeout(resolve, 1000));
// Prints:
// { _id: '<user kuid>',
// jwt: '<a different encrypted authentication token>'
// expiresAt: 1553185334220,
// ttl: 3600000 }
console.log(await kuzzle.auth.refreshToken());
} catch (error) {
console.error(error.message);
}