💚POST : Auth Signup

Nom de l'API : /auth/signup (POST)

Description : Cette API POST permet aux nouveaux utilisateurs de s'inscrire à l'application. Elle effectue plusieurs vérifications, crée un nouveau compte utilisateur, gère la liste d'attente si nécessaire, et génère un token d'authentification.

Endpoint : /auth/signup

Méthode : POST

Authentification : Non requise (Public Endpoint)

Paramètres d'entrée :

  • email (type: email) : L'adresse email du nouvel utilisateur

  • password (type: text) : Le mot de passe choisi par l'utilisateur

Fonctionnement détaillé :

  1. Query All Records From messages

    • Récupère tous les messages d'erreur et d'information

    • Retourne le résultat sous le nom "app_messages"

  2. Custom Function Error Empty Email

    • Vérifie si l'email fourni est non vide

    • Input : email

    • Retourne le résultat sous le nom "empty_email"

  3. Custom Function Error Empty Password

    • Vérifie si le mot de passe fourni est non vide

    • Input : password

    • Retourne le résultat sous le nom "empty_password"

  4. Precondition

    • Vérifie si la longueur du mot de passe est d'au moins 8 caractères

    • Condition : input:password|strlen < 8

  5. Custom Function Error Existing Email

    • Vérifie si l'email n'est pas déjà utilisé par un autre compte

    • Input : email

    • Retourne le résultat sous le nom "existing_email"

  6. Extract the part of the email before @

    • Crée une variable "splitted_email"

    • Extrait la partie de l'email avant le symbole @

    • Utilise l'input "email" comme source

  7. Add Record In users

    • Crée un nouvel enregistrement dans la table "users"

    • Champs : • id : auto-incrémenté • created_at : timestamp actuel • email : input:email • password : input:password • reset_code : vide (pour réinitialisation de mot de passe) • info : objet vide {} • token : vide

    • Retourne le résultat sous le nom "new_user"

  8. Add Record In workspace

    • Crée un nouvel espace de travail pour l'utilisateur

    • Champs : • id : auto-incrémenté • created_at : timestamp actuel • users : tableau contenant un objet avec :

      • users_id : new_user.id

      • role : "admin" • workspace_info : objet vide {}

    • Retourne le résultat sous le nom "new_workspace"

  9. Get Record From waitinglist

    • Vérifie si l'email existe dans la liste d'attente

    • Paramètres de recherche : • field_name : "email" • field_value : input:email

    • Retourne le résultat sous le nom "check_waitinglist"

  10. Conditional: If var:check_waitinglist != NA

    • Vérifie si l'utilisateur était dans la liste d'attente

    Si la condition est vraie : 10.1 Edit Record In waitinglist - Met à jour l'enregistrement dans la liste d'attente - Paramètres de recherche : • field_name : "email" • field_value : input:email - Champs mis à jour : • account_created : true - Retourne le résultat sous le nom "waiting_account_created"

  11. Create Authentication Token

    • Génère un token d'authentification pour le nouvel utilisateur

    • Paramètres de configuration : • dbtable : Users (ID: 104) • extras : objet vide {} • expiration : 86400 (24 heures en secondes) • id : new_user.id

    • Retourne le résultat sous le nom "auth_token"

Réponse : L'API renvoie un objet JSON contenant :

  • auth_token : Le token d'authentification généré (var: auth_token)

Notes supplémentaires :

  • Cette API effectue plusieurs vérifications de sécurité avant de créer un nouveau compte utilisateur.

  • Elle gère les erreurs pour les champs vides, les mots de passe trop courts et les emails déjà existants.

  • L'API crée automatiquement un espace de travail pour chaque nouvel utilisateur, avec le rôle "admin".

  • Elle vérifie également si l'utilisateur était dans une liste d'attente et met à jour son statut si nécessaire.

  • La génération du token d'authentification à la fin permet à l'utilisateur d'être immédiatement connecté après l'inscription.

  • Le token d'authentification est créé avec une durée de validité de 24 heures (86400 secondes).

  • Cette structure permet une inscription fluide, avec la création du compte, la gestion de la liste d'attente et l'authentification immédiate en une seule opération.

Dernière mise à jour