137 lines
3.4 KiB
YAML
137 lines
3.4 KiB
YAML
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'
|
|
|