openapi: 3.0.0 info: title: AuthService version: "0.1" paths: /token: post: tags: [ "JWT" ] summary: Accepts encrypted or clear set of credentials, returns JWT token operationId: auth.generateSimpleToken requestBody: content: 'application/json': schema: anyOf: - $ref: '#/components/schemas/User' - $ref: '#/components/schemas/EncUser' responses: '200': description: JWT token content: 'text/plain': schema: type: string /refreshable: post: tags: [ "JWT" ] summary: Accepts encrypted or clear set of credentials, returns tuple of AuthToken and RefreshToken operationId: auth.generateRefreshableTokens requestBody: content: 'application/json': schema: anyOf: - $ref: '#/components/schemas/User' - $ref: '#/components/schemas/EncUser' responses: '200': description: Token tuple content: 'application/json': schema: $ref: '#/components/schemas/TokenTuple' /refresh: post: tags: [ "JWT" ] summary: Accepts refresh token, returns tuple of AuthToken and RefreshToken operationId: auth.refreshTokens requestBody: content: 'text/plain': schema: $ref: '#/components/schemas/RefreshToken' responses: '200': description: Token tuple content: 'application/json': schema: $ref: '#/components/schemas/TokenTuple' /test: get: tags: [ "Test" ] summary: Return secret string operationId: auth.testToken responses: '200': description: secret response content: 'application/json': schema: $ref: '#/components/schemas/TestOutput' security: - jwt: ['secret'] /pubkey: get: tags: [ "JWT" ] summary: Get the public key of this issuer operationId: auth.getPubKey responses: '200': description: public key content: 'text/plain': schema: type: string components: securitySchemes: jwt: type: http scheme: bearer bearerFormat: JWT x-bearerInfoFunc: auth.decodeToken schemas: User: description: Application/Login/Password tuple type: object properties: application: type: string login: type: string password: type: string EncUser: description: Encrypted Application/Login/Password tuple type: object properties: encAleTuple: type: string TestOutput: description: Test Output type: object properties: message: type: string details: type: object AuthToken: description: Token for authentication purposes, just a string type: string RefreshToken: description: Token for refresh purposes, just a string type: string TokenTuple: description: Test Output type: object properties: authToken: $ref: '#/components/schemas/AuthToken' refreshToken: $ref: '#/components/schemas/RefreshToken'