{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "endpoints/tokens", "title": "Token", "description": "Tokens are required to authenticate against the API", "stability": "stable", "type": "object", "definitions": { "identity": { "description": "Email Address or other 3rd party providers identifier", "example": "john@example.com", "type": "string" }, "secret": { "description": "A password or key", "example": "correct horse battery staple", "type": "string" }, "token": { "description": "JWT", "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.e30.O_frfYM8RzmRsUNigHtu0_jZ_utSejyr1axMGa8rlsk", "type": "string" }, "expires": { "description": "Token expiry time", "format": "date-time", "type": "string" }, "scope": { "description": "Scope of the Token, defaults to 'user'", "example": "user", "type": "string" } }, "links": [ { "title": "Create", "description": "Creates a new token.", "href": "/tokens", "access": "public", "method": "POST", "rel": "create", "schema": { "type": "object", "required": [ "identity", "secret" ], "properties": { "identity": { "$ref": "#/definitions/identity" }, "secret": { "$ref": "#/definitions/secret" }, "scope": { "$ref": "#/definitions/scope" } } }, "targetSchema": { "type": "object", "properties": { "token": { "$ref": "#/definitions/token" }, "expires": { "$ref": "#/definitions/expires" } } } }, { "title": "Refresh", "description": "Returns a new token.", "href": "/tokens", "access": "private", "method": "GET", "rel": "self", "http_header": { "$ref": "../examples.json#/definitions/auth_header" }, "schema": {}, "targetSchema": { "type": "object", "properties": { "token": { "$ref": "#/definitions/token" }, "expires": { "$ref": "#/definitions/expires" }, "scope": { "$ref": "#/definitions/scope" } } } } ] }