Checkpoint: Correction du système d'authentification locale pour supporter le cookie auth_token.

Modifications apportées :
- Ajout du support du cookie auth_token dans authenticateRequest (sdk.ts)
- L'authentification locale fonctionne maintenant correctement en parallèle de Manus OAuth
- L'utilisateur peut se connecter avec o.pareige@itinova.org et le mot de passe Itinova69!

Le système vérifie d'abord le cookie auth_token (authentification locale), puis le cookie de session Manus OAuth si le premier n'est pas présent.
This commit is contained in:
Manus
2026-01-08 08:43:05 -05:00
parent 4115702c18
commit a56e6c58f4
5 changed files with 70 additions and 1 deletions

View File

@@ -0,0 +1,9 @@
{
"query": "UPDATE users SET email = 'o.pareige@itinova.org' WHERE email = 'adminServFacturation';",
"command": "mysql --batch --raw --column-names --default-character-set=utf8mb4 --host gateway02.us-east-1.prod.aws.tidbcloud.com --port 4000 --user 4CrrYuB5tme73Qo.bd4328423008 --database fo4DRyBgjsuiigFAgNLuWm --execute UPDATE users SET email = 'o.pareige@itinova.org' WHERE email = 'adminServFacturation';",
"rows": [],
"messages": [],
"stdout": "",
"stderr": "",
"execution_time_ms": 121
}

View File

@@ -0,0 +1,18 @@
{
"query": "SELECT id, email, name, role, loginMethod, isActive FROM users WHERE email LIKE '%pareige%' OR email LIKE '%adminServ%';",
"command": "mysql --batch --raw --column-names --default-character-set=utf8mb4 --host gateway02.us-east-1.prod.aws.tidbcloud.com --port 4000 --user 4CrrYuB5tme73Qo.bd4328423008 --database fo4DRyBgjsuiigFAgNLuWm --execute SELECT id, email, name, role, loginMethod, isActive FROM users WHERE email LIKE '%pareige%' OR email LIKE '%adminServ%';",
"rows": [
{
"id": "1",
"email": "o.pareige@itinova.org",
"name": "Administrateur",
"role": "admin",
"loginMethod": "local",
"isActive": "1"
}
],
"messages": [],
"stdout": "id\temail\tname\trole\tloginMethod\tisActive\n1\to.pareige@itinova.org\tAdministrateur\tadmin\tlocal\t1\n",
"stderr": "",
"execution_time_ms": 55
}

View File

@@ -0,0 +1,19 @@
{
"query": "SELECT id, email, name, role, loginMethod, isActive, passwordHash IS NOT NULL as hasPassword FROM users WHERE email = 'o.pareige@itinova.org';",
"command": "mysql --batch --raw --column-names --default-character-set=utf8mb4 --host gateway02.us-east-1.prod.aws.tidbcloud.com --port 4000 --user 4CrrYuB5tme73Qo.bd4328423008 --database fo4DRyBgjsuiigFAgNLuWm --execute SELECT id, email, name, role, loginMethod, isActive, passwordHash IS NOT NULL as hasPassword FROM users WHERE email = 'o.pareige@itinova.org';",
"rows": [
{
"id": "1",
"email": "o.pareige@itinova.org",
"name": "Administrateur",
"role": "admin",
"loginMethod": "local",
"isActive": "1",
"hasPassword": "1"
}
],
"messages": [],
"stdout": "id\temail\tname\trole\tloginMethod\tisActive\thasPassword\n1\to.pareige@itinova.org\tAdministrateur\tadmin\tlocal\t1\t1\n",
"stderr": "",
"execution_time_ms": 70
}

View File

@@ -257,8 +257,26 @@ class SDKServer {
} }
async authenticateRequest(req: Request): Promise<User> { async authenticateRequest(req: Request): Promise<User> {
// Regular authentication flow
const cookies = this.parseCookies(req.headers.cookie); const cookies = this.parseCookies(req.headers.cookie);
// Check for local auth token first
const authToken = cookies.get("auth_token");
if (authToken) {
try {
const { verifyToken } = await import("../auth");
const decoded = verifyToken(authToken);
if (decoded) {
const user = await db.getUserByEmail(decoded.email);
if (user) {
return user;
}
}
} catch (error) {
// Token invalid, continue to regular auth
}
}
// Regular Manus OAuth authentication flow
const sessionCookie = cookies.get(COOKIE_NAME); const sessionCookie = cookies.get(COOKIE_NAME);
const session = await this.verifySession(sessionCookie); const session = await this.verifySession(sessionCookie);

View File

@@ -61,3 +61,8 @@
## Corrections et améliorations ## Corrections et améliorations
- [x] Créer un utilisateur administrateur avec login adminServFacturation - [x] Créer un utilisateur administrateur avec login adminServFacturation
- [x] Tester la connexion locale avec le nouvel utilisateur - [x] Tester la connexion locale avec le nouvel utilisateur
- [x] Modifier l'email de l'administrateur de adminServFacturation à o.pareige@itinova.org
- [x] Diagnostiquer le problème de connexion locale avec o.pareige@itinova.org
- [x] Corriger l'authentification locale (ajout support cookie auth_token)