title Connecting to a character participant Game client participant Front server participant Auth server participant auth0 participant Game API participant Game server Game client->Front server: POST /login {username, password} Front server->Auth server: POST /login {username, password} Auth server->auth0:AuthenticateClient.passwordGrant({username, password}) auth0-->Auth server: {id_token, ...} Auth server-->Front server: {uuid, public_username} Front server-->Game client: {uuid, public_username} Game client->Front server: GET /characters?user_id={uuid} Front server->Game API: GET /characters?user_id={uuid} Game API-->Front server: [{...}, {...}, {...}] Front server-->Game client: [{...}, {...}, {...}] Game client->Front server: GET /gameserver Front server-->Game client: {ip: xx.xx.xx.xx} Game client->Game server: connect {character_id} Game server->Game API: GET /character/{id} Game API-->Game server: {id, name, ...} Game server-->Game client: accept