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 mot de passe
|
||||
- Sélecteur de terminal téléphonique (liste dynamique)
|
||||
- Option "Forcer la déconnexion" (checkbox)
|
||||
- Bouton de connexion
|
||||
|
||||
### 2.2 Processus d'authentification
|
||||
|
||||
#### Connexion standard
|
||||
|
||||
```javascript
|
||||
// Envoi des credentials au serveur
|
||||
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
|
||||
|
||||
**Actions automatiques après connexion réussie** :
|
||||
|
||||
Reference in New Issue
Block a user