3.3.1.1 Generating Access Tokens Programmatically

Your web application can also create or obtain a short-lived access token from Spatial Studio programmatically, by using an Access-Generator Token.

The following provides the Spatial Studio REST API endpoint details to create an access token:

Endpoint: /spatialstudio/oauth/v1/user/token?name=<NAME>&validTime=<MINUTES>&action=<ACTION>&resourceType=<RESOURCE>

Required HTTP Request Header: Name of the header must be Authorization and its value must start with Bearer followed by a space, then followed by a valid access-generator token string.

The following table describes the query parameters used in the preceding endpoint.

Table 3-1 Query Parameters

Query ParametersFoot 1 Data Type Description
name Up to 128 chars (non-null) Specifies the name of the token to be created.
validTime An integer x, where -1 >= x >= 9999 Specifies for how many minutes the new token remains valid.

Note: A value of -1 indicates that the token will not expire.

action enum[read_only, read_write] Specifies the actions the new token is allowed to perform.
resourceType enum[dataset_streaming, dataset_streaming_refreshing , embedded_published_project, all Specifies the types of resources the new token is allowed to access (act on).

Footnote 1 All the query parameters are mandatory.

It is important to note that currently only five different types of tokens can be created with the following combinations of action and resourceType:

  • action=read_only&resourceType=all
  • action=read_write&resourceType=all
  • action=read_only&resourceType=dataset_streaming
  • action=read_write&resourceType=dataset_streaming_refreshing
  • action=read_only&resourceType=embedded_published_project

Any other combination of action and resourceType (outside the valid combinations shown in preceding list) will be rejected.

The following shows a sample request (using Curl command line) to obtain an access token that allows a web application to get the streaming access to a dataset as well as allowing the refreshing of the dataset’s vector tiles.

curl -X POST 'http://localhost:8080/spatialstudio/oauth/v1/user/token?name=test123&validTime=60&action=read_write&resourceType=dataset_streaming_refreshing' --header 'Authorization: Bearer $GENERATORTOKEN'

The preceding request returns a JSON document containing the new token. Its value is stored in the token field in the response:

{"name":"test123","token":"eyJ0eXAiOiJzZ3RlY2...", … }