nyanimedb/auth/openapi-auth.yaml

126 lines
No EOL
3.2 KiB
YAML

openapi: 3.1.1
info:
title: Auth Service
version: 1.0.0
servers:
- url: /auth
paths:
/sign-up:
post:
summary: Sign up a new user
operationId: postSignUp
tags: [Auth]
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [nickname, pass]
properties:
nickname:
type: string
pass:
type: string
format: password
responses:
"200":
description: Sign-up result
content:
application/json:
schema:
required:
- user_id
type: object
properties:
user_id:
type: integer
format: int64
/sign-in:
post:
summary: Sign in a user and return JWT
operationId: postSignIn
tags: [Auth]
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [nickname, pass]
properties:
nickname:
type: string
pass:
type: string
format: password
responses:
# This one also sets two cookies: access_token and refresh_token
"200":
description: Sign-in result with JWT
content:
application/json:
schema:
required:
- user_id
- user_name
type: object
properties:
user_id:
type: integer
format: int64
user_name:
type: string
"401":
$ref: '#/components/responses/UnauthorizedError'
/get-impersonation-token:
post:
summary: Get service impersontaion token
operationId: getImpersonationToken
tags: [Auth]
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: integer
format: int64
external_id:
type: integer
format: int64
oneOf:
- required: ["user_id"]
- required: ["external_id"]
responses:
"200":
description: Generated impersonation access token
content:
application/json:
schema:
type: object
required:
- access_token
properties:
access_token:
type: string
description: JWT access token
"401":
$ref: '#/components/responses/UnauthorizedError'
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
responses:
UnauthorizedError:
description: Access token is missing or invalid