Bonjour à tous,
Comment gérez-vous l’authentification dans n8n pour les API telles que PlentyONE qui utilisent le flux suivant ?
-
Se connecter en envoyant un nom d’utilisateur et un mot de passe dans le corps de la requête JSON.
-
Recevoir
access_token,refresh_tokenetexpires_in. -
Utiliser un point de terminaison distinct pour renouveler le jeton d’accès en utilisant le jeton d’actualisation.
La connexion via un nœud HTTP Request avec une credential configurée fonctionne. Cependant, je veux éviter de me connecter et de demander un nouveau jeton à chaque exécution du workflow.
L’objectif est de se connecter une fois et de réutiliser les jetons sur plusieurs exécutions. Une exécution planifiée ou manuelle devrait réutiliser le jeton d’accès existant tant qu’il est valide. Lorsqu’un renouvellement est nécessaire, le workflow devrait utiliser le jeton d’actualisation. Une nouvelle connexion ne devrait être nécessaire que si aucun jeton d’actualisation valide n’est disponible.
J’ai construit le workflow avec ChatGPT/Codex. L’IA a suggéré l’approche suivante, que j’aimerais vérifier auprès de l’expérience de la communauté avant de l’utiliser en production :
Le nom d’utilisateur et le mot de passe sont stockés dans une credential Custom Auth. Le jeton d’accès, le jeton d’actualisation et le temps d’expiration sont stockés dans un Data Table n8n. Les jetons valides sont réutilisés et actualisés au besoin. Si le jeton d’actualisation n’est pas valide, le workflow tente de se reconnecter automatiquement.
Personnellement, stocker les jetons dans un N8N Data Table ne me semble pas particulièrement élégant. Je m’attendais à ce que la gestion des jetons soit gérée au sein des credentials, mais je n’ai pas assez d’expérience pour juger quelle approche est standard ou recommandée.
Quelle est la meilleure pratique considérée pour ce scénario dans n8n ? La gestion des jetons dans le workflow est-elle courante, ou le cycle de vie complet de l’authentification peut-il être géré par une intégration de credential ?
Je suis particulièrement intéressé par le stockage sécurisé des jetons, les exécutions concurrentes et la gestion fiable des erreurs. Je ne trouve pas de type de subvention approprié dans la credential OAuth2 générique pour la méthode de connexion décrite ci-dessus.
Le diagramme ci-joint illustre l’approche proposée.
Merci de partager votre expérience !
Environnement : n8n Cloud, plan Starter
Version : 2.43.4
Informations de débogage
core
- n8nVersion: 2.43.4
- platform: docker (cloud)
- nodeJsVersion: 26.7.0
- nodeEnv: production
- database: sqlite
- executionMode: regular




