docs workflow deconnexion forcée
This commit is contained in:
@@ -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** :
|
||||||
|
|||||||
Reference in New Issue
Block a user