The thentos API family: Core

Version {versionBranch = [0,0,1,1], versionTags = []}

Overview

Core is a simple, general-purpose user management protocol that supports using one identity for multiple services. It has all the expected basic features like email confirmation, password reset, change of user data. Furthermore, it allows to create services, register users with services, and manage the user's service login sessions.

Request Headers

If a request has an unknown header with prefix "X-Thentos-".

Authentication

To call any of this API's endpoints as a User or Service, your request has to contain an HTTP header with the name 'X-Thentos-Session' and with the value set to a valid session token.

GET /docs/js

Response:

GET /docs/md

Response:

GET /docs/ng

Response:

GET /docs/purs/:ModuleName

Captures:

Response:

GET /docs/purs/Util.js

Response:

GET /docs/purs/Util.purs

Response:

GET /js

Response:

GET /service

delete a service and unregister all its users

Response:

[]
[
    {
        "fromServiceId": "S6F4dLfwPiR6NcsrKjgHJBYh"
    }
]

POST /service

Request:

[
    12,
    {
        "fromServiceName": "Evil Corp."
    },
    {
        "fromServiceDescription": "Making the worse a little better every day."
    }
]

Response:

[
    {
        "fromServiceId": "S6F4dLfwPiR6NcsrKjgHJBYh"
    },
    {
        "fromServiceKey": "HeU3QCNovwDDgbAqbb+tW1e2"
    }
]

DELETE /service/:sid

Captures:

Response:

[]

DELETE /service_session

Request:

{
    "fromServiceSessionToken": "kvs8FFo6aisUAX+p4ESMMO5Q"
}

Response:

[]

GET /service_session

Request:

{
    "fromServiceSessionToken": "kvs8FFo6aisUAX+p4ESMMO5Q"
}

Response:

false
true

GET /service_session/meta

Request:

{
    "fromServiceSessionToken": "kvs8FFo6aisUAX+p4ESMMO5Q"
}

Response:

{
    "srvSessMdUser": "alice"
}

DELETE /thentos_session

Request:

"gFfrBSRVY2s415QIEs+xcS9n"

Response:

[]

GET /thentos_session

Request:

"gFfrBSRVY2s415QIEs+xcS9n"

Response:

false
true

POST /thentos_session

Request:

{
    "user": [
        12,
        "secret"
    ]
}

Response:

"gFfrBSRVY2s415QIEs+xcS9n"

POST /user

Request:

{
    "udEmail": "alice@example.com",
    "udName": "alice",
    "udPassword": "secret"
}

Response:

12

DELETE /user/:uid

Captures:

Response:

[]

GET /user/:uid/email

Captures:

Response:

"alice@example.com"

GET /user/:uid/name

Captures:

Response:

"alice"

POST /user/login

Request:

{
    "ldName": "alice",
    "ldPassword": "secret"
}

Response:

"gFfrBSRVY2s415QIEs+xcS9n"