docs workflow deconnexion forcée

This commit is contained in:
Pierre Marx
2025-09-04 14:20:06 -04:00
parent 6069a7238b
commit 95cd40fe42

View File

@@ -30,10 +30,13 @@ L'agent arrive sur l'écran de connexion avec :
- Champ code agent - Champ code agent
- Champ mot de passe - Champ mot de passe
- Sélecteur de terminal téléphonique (liste dynamique) - Sélecteur de terminal téléphonique (liste dynamique)
- Option "Forcer la déconnexion" (checkbox)
- Bouton de connexion - Bouton de connexion
### 2.2 Processus d'authentification ### 2.2 Processus d'authentification
#### Connexion standard
```javascript ```javascript
// Envoi des credentials au serveur // Envoi des credentials au serveur
AgentLogin(email, password, terminal) Serveur SignalR AgentLogin(email, password, terminal) Serveur SignalR
@@ -62,6 +65,79 @@ AgentLogin(email, password, terminal) → Serveur SignalR
} }
``` ```
#### Connexion avec déconnexion forcée
Utilisée dans les cas suivants :
- **Session bloquée** : Déconnexion anormale précédente (crash, perte réseau)
- **Changement de poste** : L'agent se connecte depuis un autre ordinateur
- **Reprise après erreur** : Nettoyage d'une session corrompue
```javascript
// Si la case "Forcer la déconnexion" est cochée
if (forceLogoff) {
// 1. D'abord déconnexion de la session précédente
AgentLogoff(userId) Serveur SignalR
// 2. Puis nouvelle connexion
AgentLogin(email, password, terminal) Serveur SignalR
}
```
**Interface HTML correspondante** :
```html
<form id="loginForm">
<input type="text" id="codeAgent" placeholder="Code agent" required>
<input type="password" id="password" placeholder="Mot de passe" required>
<select id="terminal" required>
<option value="">Sélectionner un terminal...</option>
<!-- Options dynamiques -->
</select>
<!-- Option de déconnexion forcée -->
<label class="checkbox-label">
<input type="checkbox" id="forceLogoff">
<span>Forcer la déconnexion de ma session précédente</span>
<small>Cochez si vous rencontrez des problèmes de connexion</small>
</label>
<button type="submit">Se connecter</button>
</form>
```
**Implémentation technique** :
```javascript
// Handler de connexion avec gestion de la déconnexion forcée
function handleLogin(event, forceDisconnect, user, password, terminal) {
try {
// Si déconnexion forcée demandée ET user fourni
if (forceDisconnect && user !== null) {
// Nettoyer la session précédente
AgentLogoff(user);
console.log(`Session précédente de ${user} fermée`);
}
// Procéder à la connexion normale
client.invoke('AgentLogin', user, password, terminal)
.then(result => {
if (result) {
// Connexion réussie
processSuccessfulLogin(result);
} else {
// Échec de connexion
showError('Identifiants incorrects');
}
});
} catch (error) {
console.error('Erreur lors de la connexion:', error);
}
}
```
Cette fonctionnalité garantit qu'un agent peut toujours reprendre son travail rapidement, même après une déconnexion anormale, sans nécessiter d'intervention technique.
### 2.3 Post-connexion ### 2.3 Post-connexion
**Actions automatiques après connexion réussie** : **Actions automatiques après connexion réussie** :