{ "openapi": "3.0.3", "info": { "title": "oauth2", "version": "0.0.1", "description": "Allows OAuth2 compatible authentication from other web applications.", "license": { "name": "agpl" } }, "components": { "securitySchemes": { "basic_auth": { "type": "http", "scheme": "basic" }, "bearer_auth": { "type": "http", "scheme": "bearer" } }, "schemas": {} }, "paths": { "/index.php/apps/oauth2/authorize": { "get": { "operationId": "login_redirector-authorize", "summary": "Authorize the user", "tags": [ "login_redirector" ], "security": [ {}, { "bearer_auth": [] }, { "basic_auth": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "client_id", "state", "response_type" ], "properties": { "client_id": { "type": "string", "description": "Client ID" }, "state": { "type": "string", "description": "State of the flow" }, "response_type": { "type": "string", "description": "Response type for the flow" } } } } } }, "responses": { "200": { "description": "Client not found", "content": { "text/html": { "schema": { "type": "string" } } } }, "303": { "description": "Redirect to login URL", "headers": { "Location": { "schema": { "type": "string" } } } } } } }, "/index.php/apps/oauth2/api/v1/token": { "post": { "operationId": "oauth_api-get-token", "summary": "Get a token", "tags": [ "oauth_api" ], "security": [ {}, { "bearer_auth": [] }, { "basic_auth": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "grant_type" ], "properties": { "grant_type": { "type": "string", "description": "Token type that should be granted" }, "code": { "type": "string", "nullable": true, "description": "Code of the flow" }, "refresh_token": { "type": "string", "nullable": true, "description": "Refresh token" }, "client_id": { "type": "string", "nullable": true, "description": "Client ID" }, "client_secret": { "type": "string", "nullable": true, "description": "Client secret" } } } } } }, "responses": { "500": { "description": "", "content": { "text/plain": { "schema": { "type": "string" } } } }, "200": { "description": "Token returned", "content": { "application/json": { "schema": { "type": "object", "required": [ "access_token", "token_type", "expires_in", "refresh_token", "user_id" ], "properties": { "access_token": { "type": "string" }, "token_type": { "type": "string" }, "expires_in": { "type": "integer", "format": "int64" }, "refresh_token": { "type": "string" }, "user_id": { "type": "string" } } } } } }, "400": { "description": "Getting token is not possible", "content": { "application/json": { "schema": { "type": "object", "required": [ "error" ], "properties": { "error": { "type": "string" } } } } } } } } } }, "tags": [] }