nilsframework/nils-users

Module de gestion des utilisateurs pour NilsFramework — inscription, connexion, profil, CRUD

Maintainers

Package info

gitlab.com/groupe11512549/nils-users

Issues

pkg:composer/nilsframework/nils-users

Statistics

Installs: 10

Dependents: 1

Suggesters: 0

Stars: 0

1.0.0 2026-04-19 17:55 UTC

This package is not auto-updated.

Last update: 2026-04-20 10:43:07 UTC


README

Module de gestion des utilisateurs pour NilsFramework.
Inscription, connexion, profil, CRUD complet — prêt à l'emploi.

📋 Table des matières

Installation

composer require nilsframework/nils-users

Migration SQL

mysql -u root -p ma_base < vendor/nilsframework/nils-users/migrations/users_table.sql

Crée la table nils_users :

ColonneTypeDescription
idBIGINTClé primaire
nomVARCHAR(100)Nom complet
emailVARCHAR(255)Email unique
passwordVARCHAR(255)Hash bcrypt
actifTINYINT1 = actif, 0 = désactivé
created_atDATETIMEDate de création
updated_atDATETIMEDate de modification

Configuration

Copiez UserController.php dans votre dossier controllers/ :

cp vendor/nilsframework/nils-users/src/UserController.php controllers/

Routes disponibles

Auth

MéthodeRouteAuthDescription
POST/auth/registerCréer un compte
POST/auth/loginConnexion
POST/auth/logout🔒Déconnexion
POST/auth/refreshRafraîchir le token
GET/auth/me🔒Profil connecté
PATCH/auth/me🔒Modifier son profil
DELETE/auth/me🔒Supprimer son compte

Utilisateurs

MéthodeRouteAuthDescription
GET/users🔒Liste des utilisateurs
GET/users/{id}🔒Détail d'un utilisateur
PATCH/users/{id}🔒Modifier un utilisateur
DELETE/users/{id}🔒Supprimer un utilisateur

Utilisation

Inscription

POST /auth/register
Content-Type: application/json

{
    "nom": "Traore Nils",
    "email": "nils@example.com",
    "password": "monmotdepasse",
    "password_confirmation": "monmotdepasse"
}
{
    "success": true,
    "message": "Compte créé avec succès.",
    "utilisateur": { "id": 1, "nom": "Traore Nils", "email": "nils@example.com" },
    "token": "eyJhbGci...",
    "refresh_token": "eyJhbGci..."
}

Connexion

POST /auth/login
Content-Type: application/json

{
    "email": "nils@example.com",
    "password": "monmotdepasse"
}
{
    "success": true,
    "message": "Connexion réussie.",
    "donnees": {
        "utilisateur": { "id": 1, "nom": "Traore Nils", "email": "nils@example.com" },
        "token": "eyJhbGci...",
        "refresh_token": "eyJhbGci..."
    }
}

Profil connecté

GET /auth/me
Authorization: Bearer eyJhbGci...

Modifier son profil

PATCH /auth/me
Authorization: Bearer eyJhbGci...
Content-Type: application/json

{
    "nom": "Nouveau nom",
    "email": "nouveau@email.com"
}

Rafraîchir le token

POST /auth/refresh
Content-Type: application/json

{
    "refresh_token": "eyJhbGci..."
}

Déconnexion

POST /auth/logout
Authorization: Bearer eyJhbGci...

Étendre le modèle

namespace modeles;

use NilsUsers\Modeles\User;

class MonUser extends User
{
    // Changer la table
    protected static string $table = 'mes_utilisateurs';

    // Ajouter des champs au schema
    protected static array $schema = [
        ...User::BASE_SCHEMA,
        'telephone' => [
            'type'     => 'string',
            'required' => false,
            'max'      => 20,
        ],
        'adresse' => [
            'type'     => 'string',
            'required' => false,
        ],
    ];

    // Masquer des champs supplémentaires
    protected static array $hidden = ['password', 'actif'];
}

Licence

MIT — © NilsFramework