fix: connexion par identifiant (adminItinova) ou email - conformité skill itinova-user-management
This commit is contained in:
@@ -30,16 +30,20 @@ const router = Router();
|
||||
// POST /api/auth/login
|
||||
router.post('/login', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const { email, password } = req.body;
|
||||
// Accepter 'login' ou 'email' (compatibilité skill itinova-user-management)
|
||||
const login = (req.body.login || req.body.email || '').trim();
|
||||
const { password } = req.body;
|
||||
|
||||
if (!email || !password) {
|
||||
return res.status(400).json({ error: 'Email et mot de passe requis' });
|
||||
if (!login || !password) {
|
||||
return res.status(400).json({ error: 'Identifiant et mot de passe requis' });
|
||||
}
|
||||
|
||||
const pool = getPool();
|
||||
// Recherche par email exact OU par identifiant (login sans @)
|
||||
// Ex: 'adminItinova' trouvera 'adminItinova@santinova-soft.org'
|
||||
const [rows]: any = await pool.execute(
|
||||
'SELECT * FROM users WHERE email = ? AND is_active = TRUE',
|
||||
[email]
|
||||
`SELECT * FROM users WHERE (email = ? OR email = CONCAT(?, '@santinova-soft.org')) AND is_active = TRUE`,
|
||||
[login, login]
|
||||
);
|
||||
|
||||
if (!rows.length) {
|
||||
|
||||
Reference in New Issue
Block a user