126 lines
No EOL
3.2 KiB
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 |