documentation/reference/api-reference/authentication.md
2023-12-02 10:32:52 +00:00

442 lines
11 KiB
Markdown

# Authentication
## Register
{% swagger method="post" path="/register" baseUrl="https://nekoya.moe.team/api" summary="" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="body" required="true" name="email" %}
xxx@example.com
{% endswagger-parameter %}
{% swagger-parameter in="body" name="password" required="true" %}
1 - 64 string characters
{% endswagger-parameter %}
{% swagger-parameter in="body" name="first_name" required="true" %}
First Name
{% endswagger-parameter %}
{% swagger-parameter in="body" name="last_name" required="true" %}
Last Name
{% endswagger-parameter %}
{% swagger-parameter in="header" required="true" name="Content-Type" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
{
"message": "Register Verification Sent ~"
}
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% endswagger %}
## Login
{% swagger method="post" path="/login" baseUrl="https://nekoya.moe.team/api" summary="Account without 2FA Enabled" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="body" name="email" required="true" %}
xxx@example.com
{% endswagger-parameter %}
{% swagger-parameter in="body" name="password" required="true" %}
1 - 64 string characters
{% endswagger-parameter %}
{% swagger-parameter in="body" name="ua" %}
User Agent
{% endswagger-parameter %}
{% swagger-parameter in="body" name="ip" %}
IP Address
{% endswagger-parameter %}
{% swagger-parameter in="header" name="Content-Type" required="true" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
{
"id": 29,
"first_name": "Celia",
"last_name": "Claire",
"email": "celia@moe.team",
"verify": true,
"otp": false,
"session_token": "2RBHSp3I8jjDzjuKaXXDWadJqRkJ1M3Q8nTmF9mioAL73OVZO8zc73sg4VBCVLQeXQRtbXZ6gQ5r1vjupkzoZP1HiRBXgHw74O7eKki6SPHIDYuxVfAdn6jPZ76HRRqI1jR1aKOdhwMq5RgOK7eMB5HEUKNu6gHIQkncoxRxz1eh5QGwGa9vYPW7TE3izEDbkGEqlIbnGf6O9foTty5HiJilPLtgVFvHUSoN6t7yDMXy2NjI0a4bKu5Pb6de0inh"
}
```
{% endswagger-response %}
{% swagger-response status="204: No Content" description="" %}
```javascript
{
"message": "Sorry You haven't verified your email"
}
```
{% endswagger-response %}
{% swagger-response status="205: Reset Content" description="" %}
```javascript
{
"message": "Sorry Your email is not registered in our system"
}
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% swagger-response status="401: Unauthorized" description="" %}
```javascript
{
"message": "Unauthorized"
}
```
{% endswagger-response %}
{% endswagger %}
{% swagger method="post" path="/login" baseUrl="https://nekoya.moe.team/api" summary="Account with 2FA Enabled" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="body" name="email" required="true" %}
xxx@example.com
{% endswagger-parameter %}
{% swagger-parameter in="header" name="Content-Type" required="true" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-parameter in="body" name="password" required="true" %}
1 - 64 string characters
{% endswagger-parameter %}
{% swagger-parameter in="body" name="ua" %}
User Agent
{% endswagger-parameter %}
{% swagger-parameter in="body" name="ip" %}
IP Address
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
{
"message": "OTP Verification Sent ~",
"otp": true,
"token": "Xb5VNMMfoWZyHf22EMS3MjmgFdjDnAPTM3OoCh3CYP8sF6ospVzAaTjCPVM5FM5c"
}
```
{% endswagger-response %}
{% swagger-response status="204: No Content" description="" %}
```javascript
{
"message": "Sorry You haven't verified your email"
}
```
{% endswagger-response %}
{% swagger-response status="205: Reset Content" description="" %}
```javascript
{
"message": "Sorry Your email is not registered in our system"
}
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% swagger-response status="401: Unauthorized" description="" %}
```javascript
{
"message": "Unauthorized"
}
```
{% endswagger-response %}
{% endswagger %}
## OTP
{% swagger method="post" path="/otp-submit" baseUrl="https://nekoya.moe.team/api" summary="Submit OTP" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="header" name="Content-Type" required="true" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-parameter in="body" name="token" required="true" %}
Encrypted String
{% endswagger-parameter %}
{% swagger-parameter in="body" name="code" required="true" type="" %}
OTP Code (6 digit)
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
{
"id": 29,
"first_name": "Celia",
"last_name": "Claire",
"email": "celia@moe.team",
"verify": true,
"otp": true,
"session_token": "2RBHSp3I8jjDzjuKaXXDWadJqRkJ1M3Q8nTmF9mioAL73OVZO8zc73sg4VBCVLQeXQRtbXZ6gQ5r1vjupkzoZP1HiRBXgHw74O7eKki6SPHIDYuxVfAdn6jPZ76HRRqI1jR1aKOdhwMq5RgOK7eMB5HEUKNu6gHIQkncoxRxz1eh5QGwGa9vYPW7TE3izEDbkGEqlIbnGf6O9foTty5HiJilPLtgVFvHUSoN6t7yDMXy2NjI0a4bKu5Pb6de0inh"
}
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% swagger-response status="403: Forbidden" description="" %}
```javascript
{
"message": "Invalid OTP Code"
}
```
{% endswagger-response %}
{% endswagger %}
{% swagger method="post" path="/otp-toggle" baseUrl="https://nekoya.moe.team/api" summary="Enable / Disable OTP" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="query" name="key" required="true" %}
Encrypted String
{% endswagger-parameter %}
{% swagger-parameter in="header" name="Content-Type" required="true" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
{
"message": "Success set OTP to true",
"otp": true
}
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% swagger-response status="401: Unauthorized" description="" %}
```javascript
{
"message": "Unauthorized"
}
```
{% endswagger-response %}
{% endswagger %}
## Verify Account (Mail)
{% swagger method="post" path="/verify-mail" baseUrl="https://nekoya.moe.team/api" summary="" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="body" name="token" required="true" %}
Encrypted String
{% endswagger-parameter %}
{% swagger-parameter in="header" name="Content-Type" required="true" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
{
"message": "Verified ~"
}
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% swagger-response status="403: Forbidden" description="" %}
```javascript
{
"message": "Forbidden"
}
```
{% endswagger-response %}
{% endswagger %}
## Reset Password
{% swagger method="post" path="/request-reset-password" baseUrl="https://nekoya.moe.team/api" summary="" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="body" name="email" required="true" %}
xxx@example.com
{% endswagger-parameter %}
{% swagger-parameter in="header" name="Content-Type" required="true" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
{
"message": "Reset Password Verification Sent ~"
}
```
{% endswagger-response %}
{% swagger-response status="205: Reset Content" description="" %}
```javascript
{
"message": "Sorry Your email is not registered in our system"
}
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% endswagger %}
{% swagger method="post" path="/reset-password" baseUrl="https://nekoya.moe.team/api" summary="" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="body" name="password" required="true" %}
1 - 64 string characters
{% endswagger-parameter %}
{% swagger-parameter in="query" name="token" required="true" %}
Encrypted String
{% endswagger-parameter %}
{% swagger-parameter in="header" name="Content-Type" required="true" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
{
"message": "Success Reset Password ~"
}
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% swagger-response status="401: Unauthorized" description="" %}
```javascript
{
"message": "Unauthorized"
}
```
{% endswagger-response %}
{% endswagger %}
## Active Sessions
{% swagger method="post" path="/sessions" baseUrl="https://nekoya.moe.team/api" summary="Get All of Active Sessions" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="query" name="key" required="true" %}
Encrypted String
{% endswagger-parameter %}
{% swagger-parameter in="header" required="true" name="Content-Type" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
[
{
"user_agent": "Mozilla/5.0 (Linux; Android 12; M2012K11AG) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Mobile Safari/537.36",
"ip": "12.26.220.109",
"session": "5ES9v6ekrGuuuKEDOpk2COGlmchHldplY10PnIIOuMUVpw32FsJy9aniQyX7RzeVan3muRWlKf02pWnIua127PKF0uPLxEccic8x5VFlN3OsyNFeJM8mdKAduRhwCIcID57vBanPrrYQ5vqv0FGbWcl29rtXk40YDUFvYoqy2VtBx5Us2sW1HYMT5EFrwC7H0T75kyRqL1ZmSJLMLKgPoUkhxOa1AMqqdy2dbSke8pOLQo20B7bgvEmxxyKcrV9C"
}
]
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% swagger-response status="401: Unauthorized" description="" %}
```javascript
{
"message": "Unauthorized"
}
```
{% endswagger-response %}
{% endswagger %}