Checkpoint: Version finale avec authentification locale corrigée : utilisation de sdk.createSessionToken() et configuration SameSite=Lax pour compatibilité HTTP
This commit is contained in:
184
UPDATE.md
Normal file
184
UPDATE.md
Normal file
@@ -0,0 +1,184 @@
|
||||
# Guide de mise à jour sur VPS
|
||||
|
||||
## Problème résolu dans cette version
|
||||
|
||||
Cette mise à jour corrige le problème de redirection vers `portal.manus.im` après une connexion locale réussie.
|
||||
|
||||
**Cause** : Incompatibilité entre les bibliothèques JWT utilisées pour créer et vérifier les tokens de session.
|
||||
|
||||
**Solution** : Utilisation de la même méthode de signature (`sdk.createSessionToken()`) que le système OAuth.
|
||||
|
||||
---
|
||||
|
||||
## Procédure de mise à jour
|
||||
|
||||
### 1. Sauvegarder la configuration actuelle
|
||||
|
||||
```bash
|
||||
# Sauvegarder le fichier .env
|
||||
cp /var/www/formation-manager-itinova/.env /var/www/formation-manager-itinova/.env.backup
|
||||
|
||||
# Sauvegarder la base de données (optionnel mais recommandé)
|
||||
mysqldump -u votre_utilisateur -p formation_manager > backup_$(date +%Y%m%d_%H%M%S).sql
|
||||
```
|
||||
|
||||
### 2. Arrêter le service
|
||||
|
||||
```bash
|
||||
sudo systemctl stop formation-manager
|
||||
```
|
||||
|
||||
### 3. Extraire la nouvelle version
|
||||
|
||||
```bash
|
||||
# Aller dans le répertoire parent
|
||||
cd /var/www
|
||||
|
||||
# Sauvegarder l'ancienne version
|
||||
mv formation-manager-itinova formation-manager-itinova.old
|
||||
|
||||
# Extraire la nouvelle archive
|
||||
tar -xzf formation-manager-itinova-final-fixed.tar.gz
|
||||
|
||||
# Restaurer le fichier .env
|
||||
cp formation-manager-itinova.old/.env formation-manager-itinova/.env
|
||||
|
||||
# Définir les bonnes permissions
|
||||
chown -R www-data:www-data formation-manager-itinova
|
||||
```
|
||||
|
||||
### 4. Installer les dépendances
|
||||
|
||||
```bash
|
||||
cd formation-manager-itinova
|
||||
pnpm install
|
||||
```
|
||||
|
||||
### 5. Appliquer les migrations de base de données
|
||||
|
||||
```bash
|
||||
pnpm db:push
|
||||
```
|
||||
|
||||
### 6. Compiler l'application
|
||||
|
||||
```bash
|
||||
pnpm build
|
||||
```
|
||||
|
||||
### 7. Redémarrer le service
|
||||
|
||||
```bash
|
||||
sudo systemctl start formation-manager
|
||||
sudo systemctl status formation-manager
|
||||
```
|
||||
|
||||
### 8. Vérifier les logs
|
||||
|
||||
```bash
|
||||
# Voir les logs en temps réel
|
||||
sudo journalctl -u formation-manager -f
|
||||
|
||||
# Voir les dernières lignes
|
||||
sudo journalctl -u formation-manager -n 50
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Vérification que la mise à jour a fonctionné
|
||||
|
||||
### Test de connexion locale
|
||||
|
||||
1. Ouvrir votre navigateur et aller sur votre site
|
||||
2. Cliquer sur "Connexion Locale"
|
||||
3. Entrer :
|
||||
- **Identifiant** : adminServFormation
|
||||
- **Mot de passe** : Itinova69!
|
||||
4. Cliquer sur "Se connecter"
|
||||
|
||||
**Résultat attendu** : Vous devez être redirigé vers le tableau de bord (`/admin`) et rester connecté, sans être redirigé vers `portal.manus.im`.
|
||||
|
||||
### Vérifier le cookie de session
|
||||
|
||||
Ouvrir les outils de développement du navigateur (F12) :
|
||||
1. Aller dans l'onglet "Application" (Chrome) ou "Stockage" (Firefox)
|
||||
2. Regarder les cookies
|
||||
3. Vous devez voir un cookie nommé `manus-session` avec une valeur JWT
|
||||
|
||||
### Vérifier que l'API fonctionne
|
||||
|
||||
Ouvrir la console du navigateur (F12) et taper :
|
||||
|
||||
```javascript
|
||||
fetch('/api/trpc/auth.me', {
|
||||
credentials: 'include'
|
||||
}).then(r => r.json()).then(console.log)
|
||||
```
|
||||
|
||||
**Résultat attendu** : Vous devez voir vos informations utilisateur, pas une erreur d'authentification.
|
||||
|
||||
---
|
||||
|
||||
## En cas de problème
|
||||
|
||||
### Le service ne démarre pas
|
||||
|
||||
```bash
|
||||
# Vérifier les erreurs
|
||||
sudo journalctl -u formation-manager -n 100
|
||||
|
||||
# Vérifier que les dépendances sont installées
|
||||
cd /var/www/formation-manager-itinova
|
||||
pnpm install
|
||||
```
|
||||
|
||||
### Toujours redirigé vers portal.manus.im
|
||||
|
||||
1. Vérifier que vous avez bien extrait la **nouvelle** archive
|
||||
2. Vérifier que le service a bien redémarré :
|
||||
```bash
|
||||
sudo systemctl restart formation-manager
|
||||
```
|
||||
3. Vider le cache du navigateur et supprimer les cookies
|
||||
4. Vérifier les logs du serveur :
|
||||
```bash
|
||||
sudo journalctl -u formation-manager -f
|
||||
```
|
||||
|
||||
### L'utilisateur admin n'existe pas
|
||||
|
||||
```bash
|
||||
cd /var/www/formation-manager-itinova
|
||||
./create-admin.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Rollback (retour à l'ancienne version)
|
||||
|
||||
Si la mise à jour pose problème :
|
||||
|
||||
```bash
|
||||
# Arrêter le service
|
||||
sudo systemctl stop formation-manager
|
||||
|
||||
# Restaurer l'ancienne version
|
||||
cd /var/www
|
||||
rm -rf formation-manager-itinova
|
||||
mv formation-manager-itinova.old formation-manager-itinova
|
||||
|
||||
# Redémarrer
|
||||
sudo systemctl start formation-manager
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Support
|
||||
|
||||
Si vous rencontrez des problèmes après avoir suivi ce guide :
|
||||
|
||||
1. Vérifiez les logs : `sudo journalctl -u formation-manager -n 100`
|
||||
2. Exécutez le script de diagnostic : `./diagnose.sh`
|
||||
3. Exécutez le script de vérification : `./verify-login.sh`
|
||||
|
||||
Ces scripts vous donneront des informations détaillées sur la configuration et les problèmes éventuels.
|
||||
Reference in New Issue
Block a user