Skip to content

SWIT Auth API

This is the SWIT authentication service API documentation.

API Overview

Endpoints

authentication

POST /auth/login

User login

Authenticate a user with username and password, returns access and refresh tokens

MethodPath
POST/auth/login

Parameters

参数名类型Required/OptionalDescription
loginobjectRequiredUser login credentials

Responses

Status CodeDescription
200Login successful
400Bad request
401Invalid credentials

Examples

:::tabs

== cURL

bash
curl -X POST \
  "http://localhost:8080/auth/login" \
  -d '{"key": "value"}'

== JavaScript

javascript
const response = await fetch('http://localhost:8080/auth/login', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <your_token>',
  },
  body: JSON.stringify({ key: 'value' }),
});
const data = await response.json();
console.log(data);

== Python

python
import requests

headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <your_token>',
}

response = requests.post(
    'http://localhost:8080/auth/login',
    json={'key': 'value'},
    headers=headers
)
data = response.json()
print(data)

:::


POST /auth/logout

User logout

Invalidate the user's access token and log them out

MethodPath
POST/auth/logout

Responses

Status CodeDescription
200Logout successful
400Authorization header is missing
500Internal server error

Examples

:::tabs

== cURL

bash
curl -X POST \
  "http://localhost:8080/auth/logout

== JavaScript

javascript
const response = await fetch('http://localhost:8080/auth/logout', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <your_token>',
  },
});
const data = await response.json();
console.log(data);

== Python

python
import requests

headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <your_token>',
}

response = requests.post(
    'http://localhost:8080/auth/logout',
    headers=headers
)
data = response.json()
print(data)

:::


POST /auth/refresh

Refresh access token

Generate new access and refresh tokens using a valid refresh token

MethodPath
POST/auth/refresh

Parameters

参数名类型Required/OptionalDescription
refreshobjectRequiredRefresh token

Responses

Status CodeDescription
200Token refresh successful
400Bad request
401Invalid or expired refresh token

Examples

:::tabs

== cURL

bash
curl -X POST \
  "http://localhost:8080/auth/refresh" \
  -d '{"key": "value"}'

== JavaScript

javascript
const response = await fetch('http://localhost:8080/auth/refresh', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <your_token>',
  },
  body: JSON.stringify({ key: 'value' }),
});
const data = await response.json();
console.log(data);

== Python

python
import requests

headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <your_token>',
}

response = requests.post(
    'http://localhost:8080/auth/refresh',
    json={'key': 'value'},
    headers=headers
)
data = response.json()
print(data)

:::


GET /auth/validate

Validate access token

Validate an access token and return token information including user ID

MethodPath
GET/auth/validate

Responses

Status CodeDescription
200Token is valid
401Invalid or expired token

Examples

:::tabs

== cURL

bash
curl -X GET \
  "http://localhost:8080/auth/validate

== JavaScript

javascript
const response = await fetch('http://localhost:8080/auth/validate', {
  headers: {
    'Authorization': 'Bearer <your_token>',
  },
});
const data = await response.json();
console.log(data);

== Python

python
import requests

headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <your_token>',
}

response = requests.get(
    'http://localhost:8080/auth/validate',
    headers=headers
)
data = response.json()
print(data)

:::


health

GET /health

Health check

Check if the authentication service is healthy

MethodPath
GET/health

Responses

Status CodeDescription
200Service is healthy

Examples

:::tabs

== cURL

bash
curl -X GET \
  "http://localhost:8080/health

== JavaScript

javascript
const response = await fetch('http://localhost:8080/health', {
  headers: {
    'Authorization': 'Bearer <your_token>',
  },
});
const data = await response.json();
console.log(data);

== Python

python
import requests

headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <your_token>',
}

response = requests.get(
    'http://localhost:8080/health',
    headers=headers
)
data = response.json()
print(data)

:::


Released under the MIT License.