authservice/openapi.yaml

137 lines
3.4 KiB
YAML
Raw Normal View History

2021-01-25 21:52:52 +01:00
openapi: 3.0.0
info:
title: AuthService
version: "0.1"
paths:
/token:
2021-01-25 21:52:52 +01:00
post:
tags: [ "JWT" ]
2021-09-03 19:06:04 +02:00
summary: Accepts encrypted or clear set of credentials, returns JWT token
operationId: auth.generateSimpleToken
2021-01-26 13:43:09 +01:00
requestBody:
content:
'application/json':
schema:
anyOf:
- $ref: '#/components/schemas/User'
- $ref: '#/components/schemas/EncUser'
2021-05-07 12:15:30 +02:00
responses:
'200':
description: JWT token
content:
'text/plain':
schema:
type: string
2021-09-03 19:06:04 +02:00
/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:
2021-01-25 21:52:52 +01:00
get:
2021-05-11 16:52:41 +02:00
tags: [ "Test" ]
2021-01-25 21:52:52 +01:00
summary: Return secret string
operationId: auth.testToken
2021-01-25 21:52:52 +01:00
responses:
'200':
description: secret response
content:
2021-06-17 18:50:05 +02:00
'application/json':
2021-01-25 21:52:52 +01:00
schema:
2021-06-17 18:50:05 +02:00
$ref: '#/components/schemas/TestOutput'
2021-01-25 21:52:52 +01:00
security:
- jwt: ['secret']
2021-05-06 16:37:32 +02:00
/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
2021-01-25 21:52:52 +01:00
components:
securitySchemes:
jwt:
type: http
scheme: bearer
bearerFormat: JWT
2021-05-11 16:48:02 +02:00
x-bearerInfoFunc: auth.decodeToken
2021-01-26 13:43:09 +01:00
schemas:
User:
2021-01-26 21:27:17 +01:00
description: Application/Login/Password tuple
2021-01-26 13:43:09 +01:00
type: object
properties:
2021-01-26 21:27:17 +01:00
application:
type: string
2021-01-26 13:43:09 +01:00
login:
type: string
password:
type: string
EncUser:
description: Encrypted Application/Login/Password tuple
type: object
properties:
encAleTuple:
type: string
2021-06-17 18:50:05 +02:00
TestOutput:
description: Test Output
type: object
properties:
message:
type: string
details:
type: object
2021-09-03 19:06:04 +02:00
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'