Manage Tokens
You can create persistent and non-persistent REST login tokens, view properties of tokens, and delete tokens. Properties of REST login tokens are read-only after the token is created. You can access a token via its returned token value or token ID.
Example 16-3 Creating a REST Login Token
Username and password are required to create a REST login token.
Set the token name
. By default the value of
preserve
is false
and the value of
expiration
is 900. If you set preserve
to
true
, then you must set expiration
to a number
of seconds.
Be sure to save the value of X-Auth-Session
from the result.
For more information, see REST Login Tokens.
Example Request:
POST /api/user/v2/users/test_user/preferences/tokens HTTP/1.1
Host: zfs-storage.example.com:215
X-Auth-User: test_user
X-Auth-Key: password-xxx
Content-Type: application/json
{"name": "Test Token"}
Example Result:
HTTP/1.1 201 Created ... X-Auth-Session: JjZJsZrVQfbZULyAuvSJjTftnBHCcQT { "token": { "href": "/api/user/v2/users/test_user/preferences/tokens/fb65a127-a04c-4f58-bc52-efa884447efb", "name": "Test Token", "token_username": "test_user", "preserve": false, "expiration": "2020-04-30T02:33:44Z", "id": "fb65a127-a04c-4f58-bc52-efa884447efb" } }
Example Request:
POST /api/user/v2/users/test_user/preferences/tokens HTTP/1.1
Host: zfs-storage.example.com:215
X-Auth-User: test_user
X-Auth-Key: password-xxx
Content-Type: application/json
{"name": "Another Token", "preserve": true, "expiration": 3600}
Example Result:
HTTP/1.1 201 Created ... X-Auth-Session: pviHrthBGQhGZHoPuqxFQrDcCPZgwEK { "token": { "href": "/api/user/v2/users/test_user/preferences/tokens/21f981ad-6221-4fb4-a7d1-dd5560256dfb", "name": "Another Token", "token_username": "test_user", "preserve": true, "expiration": "2020-04-30T03:20:31Z", "id": "21f981ad-6221-4fb4-a7d1-dd5560256dfb" } }
Example 16-4 List All Tokens of the Specified User
Example Request:
GET /api/user/v2/users/test_user/preferences/tokens HTTP/1.1 X-Auth-Session: pviHrthBGQhGZHoPuqxFQrDcCPZgwEK
Example Result:
{ "tokens": [{ "name": "Another Token", "token_username": "test_user", "preserve": true, "expiration": "2020-04-30T03:20:31Z", "id": "21f981ad-6221-4fb4-a7d1-dd5560256dfb", "href": "/api/user/v2/users/testuser1/preferences/tokens/21f981ad-6221-4fb4-a7d1-dd5560256dfb" },{ "name": "Test Token", "token_username": "test_user", "preserve": false, "expiration": "2020-04-30T02:33:44Z", "id": "fb65a127-a04c-4f58-bc52-efa884447efb", "href": "/api/user/v2/users/testuser1/preferences/tokens/fb65a127-a04c-4f58-bc52-efa884447efb" }] }
Example 16-5 List a Specific Token by Its Token Value
Example Request:
GET /api/user/v2/users/test_user/preferences/tokens?token=pviHrthBGQhGZHoPuqxFQrDcCPZgwEK HTTP/1.1 X-Auth-Session: pviHrthBGQhGZHoPuqxFQrDcCPZgwEK
Example Result:
{ "token": { "href": "/api/user/v2/users/test_user/preferences/tokens/21f981ad-6221-4fb4-a7d1-dd5560256dfb", "name": "Another Token", "token_username": "test_user", "preserve": true, "expiration": "2020-04-30T03:20:31Z", "id": "21f981ad-6221-4fb4-a7d1-dd5560256dfb" } }
Example 16-6 List a Specific Token by Its Token ID
GET /api/user/v2/users/test_user/preferences/tokens/21f981ad-6221-4fb4-a7d1-dd5560256dfb HTTP/1.1 X-Auth-Session: pviHrthBGQhGZHoPuqxFQrDcCPZgwEK
The result is the same as earlier.
Example 16-7 Delete a Token by Its Token Value
Example Request:
DELETE /api/user/v2/users/test_user/preferences/tokens?token=pviHrthBGQhGZHoPuqxFQrDcCPZgwEK HTTP/1.1 X-Auth-Session: pviHrthBGQhGZHoPuqxFQrDcCPZgwEK
Example Result:
HTTP/1.1 204 No Content
Example 16-8 Delete a Token by Its Token ID
DELETE /api/user/v2/users/test_user/preferences/tokens/21f981ad-6221-4fb4-a7d1-dd5560256dfb HTTP/1.1 X-Auth-Session: pviHrthBGQhGZHoPuqxFQrDcCPZgwEK