{"id":76,"date":"2026-02-15T17:05:54","date_gmt":"2026-02-15T16:05:54","guid":{"rendered":"https:\/\/www.vultask.fr\/blog\/?p=76"},"modified":"2026-02-17T09:56:05","modified_gmt":"2026-02-17T08:56:05","slug":"pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress","status":"publish","type":"post","link":"https:\/\/www.vultask.fr\/blog\/2026\/02\/15\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\/","title":{"rendered":"Pourquoi je dois me reconnecter alors que je suis d\u00e9j\u00e0 connect\u00e9 ? L&rsquo;histoire d&rsquo;une int\u00e9gration SSO entre VulTask et WordPress"},"content":{"rendered":"\n<p><em>Comment une simple frustration utilisateur m&rsquo;a conduit \u00e0 d\u00e9velopper un syst\u00e8me d&rsquo;authentification unique entre mon application et mon blog \u2014 et ce que j&rsquo;ai appris en chemin.<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Prologue : une question qui change tout<\/h2>\n\n\n\n<p>Il y a des questions qui semblent anodines mais qui, une fois pos\u00e9es, deviennent impossibles \u00e0 ignorer.<\/p>\n\n\n\n<p><strong>\u00ab\u00a0Pourquoi je dois me reconnecter alors que je suis d\u00e9j\u00e0 connect\u00e9 ?\u00a0\u00bb<\/strong><\/p>\n\n\n\n<p>Cette question m&rsquo;a hant\u00e9 pendant des jours. Elle tournait en boucle dans ma t\u00eate, me r\u00e9veillait la nuit, s&rsquo;invitait dans mes moments de r\u00e9flexion. Pas parce qu&rsquo;elle \u00e9tait complexe \u2014 au contraire, elle \u00e9tait d&rsquo;une simplicit\u00e9 d\u00e9sarmante. Mais parce qu&rsquo;elle pointait du doigt une incoh\u00e9rence que j&rsquo;avais accept\u00e9e sans la questionner.<\/p>\n\n\n\n<p>Et accepter l&rsquo;inacceptable, c&rsquo;est le premier pas vers la m\u00e9diocrit\u00e9.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Chapitre 1 : Le contexte \u2014 VulTask et son blog<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">VulTask : une application n\u00e9e d&rsquo;un besoin personnel<\/h3>\n\n\n\n<p>Pour comprendre cette histoire, il faut d&rsquo;abord comprendre ce qu&rsquo;est VulTask.<\/p>\n\n\n\n<p>VulTask est une application de gestion de projet en mode Kanban que je d\u00e9veloppe seul depuis plusieurs mois. Elle est n\u00e9e d&rsquo;une frustration personnelle : les outils existants \u00e9taient soit trop complexes, soit trop limit\u00e9s, soit trop chers pour un usage personnel ou pour une petite \u00e9quipe.<\/p>\n\n\n\n<p>J&rsquo;ai voulu cr\u00e9er quelque chose de diff\u00e9rent. Un outil qui soit :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Simple<\/strong> \u00e0 prendre en main<\/li>\n\n\n\n<li><strong>Puissant<\/strong> dans ses fonctionnalit\u00e9s<\/li>\n\n\n\n<li><strong>Gratuit<\/strong> pour un usage personnel<\/li>\n\n\n\n<li><strong>Respectueux<\/strong> de la vie priv\u00e9e des utilisateurs<\/li>\n<\/ul>\n\n\n\n<p>VulTask propose une structure en trois niveaux : des <strong>Bureaux<\/strong> (espaces de travail), des <strong>Projets<\/strong>, et des <strong>Cartes<\/strong> (t\u00e2ches). On peut y ajouter des \u00e9tiquettes, des dates d&rsquo;\u00e9ch\u00e9ance, des pi\u00e8ces jointes, des commentaires, des sous-t\u00e2ches. Un syst\u00e8me de gamification avec Tasko, le renard mascotte, encourage les utilisateurs \u00e0 rester productifs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">L&rsquo;arriv\u00e9e du blog : partager plus qu&rsquo;un outil<\/h3>\n\n\n\n<p>Apr\u00e8s plusieurs mois de d\u00e9veloppement, j&rsquo;ai ressenti le besoin de partager davantage que du code. Je voulais partager des id\u00e9es, des conseils, des r\u00e9flexions sur la productivit\u00e9, l&rsquo;agilit\u00e9, la gestion de projet.<\/p>\n\n\n\n<p>D&rsquo;o\u00f9 l&rsquo;id\u00e9e d&rsquo;ajouter un blog.<\/p>\n\n\n\n<p>Le choix de WordPress s&rsquo;est impos\u00e9 naturellement. C&rsquo;est le CMS le plus utilis\u00e9 au monde, il est robuste, bien document\u00e9, et dispose d&rsquo;un \u00e9cosyst\u00e8me de plugins immense. Plut\u00f4t que de r\u00e9inventer la roue en d\u00e9veloppant un syst\u00e8me de blog from scratch, autant utiliser un outil \u00e9prouv\u00e9.<\/p>\n\n\n\n<p>J&rsquo;ai donc install\u00e9 WordPress dans un sous-r\u00e9pertoire <code>\/blog\/<\/code> de VulTask. Configuration rapide, th\u00e8me personnalis\u00e9 aux couleurs de VulTask, premiers articles r\u00e9dig\u00e9s. Tout semblait parfait.<\/p>\n\n\n\n<p>Jusqu&rsquo;au moment o\u00f9 j&rsquo;ai voulu laisser un commentaire.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Chapitre 2 : Le drame \u2014 Deux mondes qui s&rsquo;ignorent<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">La friction invisible devenue visible<\/h3>\n\n\n\n<p>Le sc\u00e9nario \u00e9tait le suivant :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Je me connecte \u00e0 VulTask avec mon compte<\/li>\n\n\n\n<li>Je navigue vers le blog pour relire un article<\/li>\n\n\n\n<li>Je scrolle jusqu&rsquo;\u00e0 la section commentaires<\/li>\n\n\n\n<li>Je vois&#8230; un formulaire me demandant mon nom et mon email<\/li>\n<\/ol>\n\n\n\n<p>Attendez. Quoi ?<\/p>\n\n\n\n<p>Je suis connect\u00e9. Je viens de passer 30 minutes sur VulTask \u00e0 organiser mes t\u00e2ches. Mon avatar est affich\u00e9 en haut \u00e0 droite de l&rsquo;\u00e9cran. L&rsquo;application sait parfaitement qui je suis.<\/p>\n\n\n\n<p>Et pourtant, WordPress me traite comme un parfait inconnu.<\/p>\n\n\n\n<p>Nom : _____________ Email : _____________ Site web : _____________<\/p>\n\n\n\n<p>Cette friction, je l&rsquo;avais v\u00e9cue des dizaines de fois sur d&rsquo;autres sites. Je l&rsquo;avais accept\u00e9e comme \u00ab\u00a0normale\u00a0\u00bb. Mais la vivre sur mon propre produit, sur mon propre domaine, avec mon propre compte&#8230; c&rsquo;\u00e9tait diff\u00e9rent.<\/p>\n\n\n\n<p>C&rsquo;\u00e9tait inacceptable.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Le r\u00e9flexe du d\u00e9veloppeur solo : minimiser<\/h3>\n\n\n\n<p>Ma premi\u00e8re r\u00e9action a \u00e9t\u00e9 celle de tout d\u00e9veloppeur d\u00e9bord\u00e9 : minimiser le probl\u00e8me.<\/p>\n\n\n\n<p><em>\u00ab\u00a0Ce n&rsquo;est pas si grave. Les utilisateurs comprendront. Ils rempliront le formulaire une fois, le navigateur retiendra leurs infos, et voil\u00e0.\u00a0\u00bb<\/em><\/p>\n\n\n\n<p><em>\u00ab\u00a0J&rsquo;ai des fonctionnalit\u00e9s plus importantes \u00e0 d\u00e9velopper. Le syst\u00e8me d&rsquo;automatisation n&rsquo;est pas fini. La gamification a des bugs. Le mode sombre a besoin d&rsquo;ajustements.\u00a0\u00bb<\/em><\/p>\n\n\n\n<p><em>\u00ab\u00a0Personne ne va vraiment commenter de toute fa\u00e7on.\u00a0\u00bb<\/em><\/p>\n\n\n\n<p>Ces excuses, je les connais par c\u0153ur. Je les ai utilis\u00e9es des centaines de fois. Et elles sont toutes fausses.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Chapitre 3 : Pourquoi la friction est l&rsquo;ennemi num\u00e9ro un<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Le co\u00fbt cach\u00e9 de chaque \u00e9tape suppl\u00e9mentaire<\/h3>\n\n\n\n<p>Il existe une r\u00e8gle non \u00e9crite en UX : <strong>chaque \u00e9tape suppl\u00e9mentaire divise par deux le nombre d&rsquo;utilisateurs qui vont au bout du processus<\/strong>.<\/p>\n\n\n\n<p>C&rsquo;est ce qu&rsquo;on appelle parfois la \u00ab\u00a0loi de l&rsquo;entonnoir\u00a0\u00bb. Si 100 personnes arrivent sur votre formulaire de commentaire :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>50 vont commencer \u00e0 \u00e9crire<\/li>\n\n\n\n<li>25 vont terminer leur commentaire<\/li>\n\n\n\n<li>12 vont remplir leur nom et email<\/li>\n\n\n\n<li>6 vont effectivement cliquer sur \u00ab\u00a0Publier\u00a0\u00bb<\/li>\n<\/ul>\n\n\n\n<p>Chaque champ \u00e0 remplir, chaque clic suppl\u00e9mentaire, chaque micro-h\u00e9sitation&#8230; c&rsquo;est une opportunit\u00e9 pour l&rsquo;utilisateur d&rsquo;abandonner.<\/p>\n\n\n\n<p>Et un commentaire perdu, c&rsquo;est quoi exactement ?<\/p>\n\n\n\n<p>C&rsquo;est une id\u00e9e qui ne sera jamais partag\u00e9e. Une question qui ne sera jamais pos\u00e9e. Un feedback qui ne sera jamais re\u00e7u. Une connexion humaine qui ne sera jamais \u00e9tablie.<\/p>\n\n\n\n<p>Multipli\u00e9 par des dizaines, des centaines, des milliers d&rsquo;utilisateurs potentiels&#8230; le co\u00fbt devient astronomique.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Le message implicite de la d\u00e9connexion<\/h3>\n\n\n\n<p>Au-del\u00e0 de la friction pratique, il y a le message implicite.<\/p>\n\n\n\n<p>Quand deux applications sur le m\u00eame domaine ne se reconnaissent pas, que dit-on \u00e0 l&rsquo;utilisateur ?<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>\u00ab\u00a0Nos syst\u00e8mes ne communiquent pas entre eux.\u00a0\u00bb<\/em> \u2192 Manque de coh\u00e9rence technique<\/li>\n\n\n\n<li><em>\u00ab\u00a0Ton exp\u00e9rience n&rsquo;est pas notre priorit\u00e9.\u00a0\u00bb<\/em> \u2192 Manque d&rsquo;attention<\/li>\n\n\n\n<li><em>\u00ab\u00a0On n&rsquo;a pas pris le temps de bien faire les choses.\u00a0\u00bb<\/em> \u2192 Manque de professionnalisme<\/li>\n\n\n\n<li><em>\u00ab\u00a0D\u00e9brouille-toi.\u00a0\u00bb<\/em> \u2192 Manque de respect<\/li>\n<\/ul>\n\n\n\n<p>C&rsquo;est dur \u00e0 entendre. Mais c&rsquo;est la r\u00e9alit\u00e9.<\/p>\n\n\n\n<p>Les utilisateurs ne verbalisent pas ces pens\u00e9es consciemment. Mais ils les ressentent. Et ces micro-frustrations s&rsquo;accumulent jusqu&rsquo;\u00e0 former une impression g\u00e9n\u00e9rale : <em>\u00ab\u00a0Ce produit n&rsquo;est pas vraiment fini.\u00a0\u00bb<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Mon identit\u00e9 professionnelle en jeu<\/h3>\n\n\n\n<p>Et puis il y a eu cette r\u00e9alisation qui a tout chang\u00e9.<\/p>\n\n\n\n<p>Je suis int\u00e9grateur logiciel. Mon m\u00e9tier, c&rsquo;est de faire dialoguer les syst\u00e8mes entre eux. De cr\u00e9er des interfaces fluides. Des passerelles invisibles. De prendre deux applications qui s&rsquo;ignorent et de les faire collaborer comme si elles n&rsquo;en formaient qu&rsquo;une.<\/p>\n\n\n\n<p>C&rsquo;est litt\u00e9ralement ce pour quoi on me paie au quotidien.<\/p>\n\n\n\n<p>Alors laisser deux applications sur le m\u00eame domaine \u2014 <strong>mon<\/strong> domaine \u2014 s&rsquo;ignorer mutuellement ? C&rsquo;\u00e9tait plus qu&rsquo;une question d&rsquo;UX. C&rsquo;\u00e9tait une question d&rsquo;int\u00e9grit\u00e9 professionnelle.<\/p>\n\n\n\n<p>Si je ne suis pas capable d&rsquo;int\u00e9grer mes propres outils, comment puis-je pr\u00e9tendre aider les autres \u00e0 int\u00e9grer les leurs ?<\/p>\n\n\n\n<p>La d\u00e9cision \u00e9tait prise. J&rsquo;allais r\u00e9soudre ce probl\u00e8me, peu importe le temps que \u00e7a prendrait.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Chapitre 4 : Plong\u00e9e dans les entrailles du SSO<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Qu&rsquo;est-ce que le SSO exactement ?<\/h3>\n\n\n\n<p>SSO signifie <strong>Single Sign-On<\/strong>, ou \u00ab\u00a0authentification unique\u00a0\u00bb en fran\u00e7ais.<\/p>\n\n\n\n<p>Le concept est simple : tu te connectes une fois, tu es connect\u00e9 partout.<\/p>\n\n\n\n<p>Vous l&rsquo;utilisez tous les jours sans le savoir. Quand vous vous connectez \u00e0 Gmail et que vous \u00eates automatiquement connect\u00e9 \u00e0 YouTube, Google Drive et Google Calendar, c&rsquo;est du SSO. Quand vous utilisez \u00ab\u00a0Se connecter avec Facebook\u00a0\u00bb sur un site tiers, c&rsquo;est du SSO. Quand vous acc\u00e9dez \u00e0 toutes les applications de votre entreprise avec un seul mot de passe, c&rsquo;est du SSO.<\/p>\n\n\n\n<p>Les grandes plateformes ont des \u00e9quipes enti\u00e8res d\u00e9di\u00e9es \u00e0 ces syst\u00e8mes. Des protocoles standardis\u00e9s existent : OAuth 2.0, OpenID Connect, SAML. Des services tiers proposent des solutions cl\u00e9 en main : Auth0, Okta, Firebase Authentication.<\/p>\n\n\n\n<p>Mais quand tu es d\u00e9veloppeur solo, avec une application PHP custom d&rsquo;un c\u00f4t\u00e9 et WordPress de l&rsquo;autre, les choses sont moins simples.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Premi\u00e8re approche : partager les sessions PHP<\/h3>\n\n\n\n<p>Ma premi\u00e8re id\u00e9e \u00e9tait la plus intuitive : puisque VulTask et WordPress tournent tous deux sur PHP, sur le m\u00eame serveur, pourquoi ne pas simplement partager les sessions PHP ?<\/p>\n\n\n\n<p>Une session PHP, c&rsquo;est un m\u00e9canisme qui permet de stocker des informations c\u00f4t\u00e9 serveur et de les associer \u00e0 un visiteur via un cookie (g\u00e9n\u00e9ralement nomm\u00e9 <code>PHPSESSID<\/code>). Quand vous vous connectez \u00e0 VulTask, votre <code>user_id<\/code> est stock\u00e9 dans la session. \u00c0 chaque requ\u00eate suivante, PHP r\u00e9cup\u00e8re cette session et sait qui vous \u00eates.<\/p>\n\n\n\n<p>L&rsquo;id\u00e9e \u00e9tait donc :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>VulTask cr\u00e9e une session avec les infos utilisateur<\/li>\n\n\n\n<li>WordPress lit cette m\u00eame session<\/li>\n\n\n\n<li>WordPress sait qui vous \u00eates<\/li>\n\n\n\n<li>Magie !<\/li>\n<\/ol>\n\n\n\n<p>J&rsquo;ai cod\u00e9 un prototype en quelques heures. Confiant, j&rsquo;ai test\u00e9.<\/p>\n\n\n\n<p>\u00c7a n&rsquo;a pas march\u00e9.<\/p>\n\n\n\n<p>Le probl\u00e8me ? <strong>Chaque application PHP d\u00e9marre sa propre session<\/strong>. WordPress a son propre m\u00e9canisme de gestion des sessions, ses propres cookies, sa propre logique. Il n&rsquo;utilise m\u00eame pas les sessions PHP standard de la m\u00eame mani\u00e8re que VulTask.<\/p>\n\n\n\n<p>M\u00eame en for\u00e7ant les deux applications \u00e0 utiliser le m\u00eame identifiant de session, WordPress ne savait pas interpr\u00e9ter les donn\u00e9es que VulTask y stockait. Et vice versa.<\/p>\n\n\n\n<p>Retour \u00e0 la case d\u00e9part.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Deuxi\u00e8me approche : les cookies partag\u00e9s<\/h3>\n\n\n\n<p>Si les sessions ne peuvent pas \u00eatre partag\u00e9es directement, pourquoi ne pas cr\u00e9er un syst\u00e8me ind\u00e9pendant bas\u00e9 sur les cookies ?<\/p>\n\n\n\n<p>L&rsquo;id\u00e9e :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Quand un utilisateur se connecte \u00e0 VulTask, g\u00e9n\u00e9rer un token unique<\/li>\n\n\n\n<li>Stocker ce token en base de donn\u00e9es avec l&rsquo;ID de l&rsquo;utilisateur<\/li>\n\n\n\n<li>Cr\u00e9er un cookie contenant ce token, accessible par tout le domaine<\/li>\n\n\n\n<li>C\u00f4t\u00e9 WordPress, v\u00e9rifier ce cookie \u00e0 chaque chargement de page<\/li>\n\n\n\n<li>Si le token est valide, connecter automatiquement l&rsquo;utilisateur \u00e0 WordPress<\/li>\n<\/ol>\n\n\n\n<p>Cette approche semblait solide. J&rsquo;ai impl\u00e9ment\u00e9 le syst\u00e8me c\u00f4t\u00e9 VulTask, cr\u00e9\u00e9 un plugin WordPress pour la v\u00e9rification, et test\u00e9.<\/p>\n\n\n\n<p>Le cookie \u00e9tait cr\u00e9\u00e9. Le plugin le d\u00e9tectait. Le token \u00e9tait valid\u00e9 en base. L&rsquo;utilisateur \u00e9tait connect\u00e9.<\/p>\n\n\n\n<p>\u00c7a marchait ! Enfin&#8230; dans certains cas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Le bug myst\u00e9rieux : www vs non-www<\/h3>\n\n\n\n<p>Parce que dans d&rsquo;autres cas, \u00e7a ne marchait pas du tout. Et impossible de comprendre pourquoi.<\/p>\n\n\n\n<p>J&rsquo;ai pass\u00e9 des heures \u00e0 debugger. Des logs partout. Des <code>var_dump()<\/code> dans tous les sens. Le cookie \u00e9tait l\u00e0 c\u00f4t\u00e9 VulTask, absent c\u00f4t\u00e9 WordPress. Puis pr\u00e9sent des deux c\u00f4t\u00e9s. Puis absent \u00e0 nouveau.<\/p>\n\n\n\n<p>C&rsquo;\u00e9tait \u00e0 devenir fou.<\/p>\n\n\n\n<p>Jusqu&rsquo;\u00e0 ce que je remarque un d\u00e9tail dans l&rsquo;URL.<\/p>\n\n\n\n<p>Quand j&rsquo;acc\u00e9dais \u00e0 VulTask via <code>www.vultask.fr<\/code>, tout fonctionnait. Quand j&rsquo;acc\u00e9dais au blog via <code>vultask.fr\/blog<\/code> (sans le <code>www<\/code>), le cookie disparaissait.<\/p>\n\n\n\n<p>Le coupable : <strong>la politique de m\u00eame origine des navigateurs<\/strong>.<\/p>\n\n\n\n<p>Pour un navigateur, <code>www.vultask.fr<\/code> et <code>vultask.fr<\/code> sont deux domaines diff\u00e9rents. Un cookie cr\u00e9\u00e9 sur l&rsquo;un n&rsquo;est pas accessible par l&rsquo;autre, sauf configuration explicite.<\/p>\n\n\n\n<p>La solution ? Forcer une redirection syst\u00e9matique vers <code>www.vultask.fr<\/code>, quelle que soit l&rsquo;URL d&rsquo;entr\u00e9e. Une simple r\u00e8gle dans le fichier <code>.htaccess<\/code> :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RewriteEngine On\nRewriteCond %{HTTP_HOST} ^vultask\\.fr$ &#91;NC]\nRewriteRule ^(.*)$ https:\/\/www.vultask.fr\/$1 &#91;R=301,L]\n<\/code><\/pre>\n\n\n\n<p>Sauf que cette r\u00e8gle a cr\u00e9\u00e9 d&rsquo;autres probl\u00e8mes. Des boucles de redirection. Des conflits avec les r\u00e8gles WordPress. Le <code>.htaccess<\/code> du blog qui interf\u00e9rait avec celui de la racine.<\/p>\n\n\n\n<p>Encore quelques heures de debugging plus tard, tout \u00e9tait enfin en ordre.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Le cauchemar des collations MySQL<\/h3>\n\n\n\n<p>Mais le parcours n&rsquo;\u00e9tait pas termin\u00e9.<\/p>\n\n\n\n<p>Le syst\u00e8me de token fonctionnait. Le cookie \u00e9tait partag\u00e9. WordPress d\u00e9tectait la connexion VulTask. Il ne restait plus qu&rsquo;\u00e0 r\u00e9cup\u00e9rer les informations de l&rsquo;utilisateur pour le connecter \u00e0 WordPress.<\/p>\n\n\n\n<p>Simple requ\u00eate SQL : trouver l&rsquo;utilisateur WordPress dont l&#8217;email correspond \u00e0 l&rsquo;utilisateur VulTask.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT * FROM wp_users WHERE user_email = 'user@example.com'\n<\/code><\/pre>\n\n\n\n<p>Sauf que cette requ\u00eate \u00e9chouait avec une erreur cryptique :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#1267 - Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) \nand (utf8mb4_unicode_520_ci,IMPLICIT) for operation '='\n<\/code><\/pre>\n\n\n\n<p>Bienvenue dans le monde merveilleux des <strong>collations MySQL<\/strong>.<\/p>\n\n\n\n<p>Pour les non-initi\u00e9s : une collation d\u00e9finit comment MySQL compare et trie les cha\u00eenes de caract\u00e8res. Est-ce que \u00ab\u00a0\u00e9\u00a0\u00bb est \u00e9gal \u00e0 \u00ab\u00a0e\u00a0\u00bb ? Est-ce que \u00ab\u00a0Caf\u00e9\u00a0\u00bb vient avant ou apr\u00e8s \u00ab\u00a0cafe\u00a0\u00bb dans l&rsquo;ordre alphab\u00e9tique ?<\/p>\n\n\n\n<p>VulTask utilise la collation <code>utf8mb4_unicode_ci<\/code> (une collation Unicode standard). WordPress utilise <code>utf8mb4_unicode_520_ci<\/code> (une version plus r\u00e9cente bas\u00e9e sur Unicode 5.2).<\/p>\n\n\n\n<p>Quand vous essayez de comparer des cha\u00eenes provenant de tables avec des collations diff\u00e9rentes, MySQL refuse. Par s\u00e9curit\u00e9. Parce que le r\u00e9sultat pourrait \u00eatre impr\u00e9visible.<\/p>\n\n\n\n<p>La solution ? Forcer explicitement la collation dans chaque requ\u00eate :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT * FROM wp_users \nWHERE user_email COLLATE utf8mb4_unicode_ci = ?\n<\/code><\/pre>\n\n\n\n<p>Ce n&rsquo;est pas \u00e9l\u00e9gant, mais \u00e7a fonctionne.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">La synchronisation compl\u00e8te<\/h3>\n\n\n\n<p>Une fois ces obstacles surmont\u00e9s, le SSO de base fonctionnait. Mais j&rsquo;ai voulu aller plus loin.<\/p>\n\n\n\n<p>Puisque les deux syst\u00e8mes communiquent maintenant, pourquoi ne pas synchroniser davantage ?<\/p>\n\n\n\n<p><strong>La photo de profil<\/strong> : Sur VulTask, les utilisateurs peuvent uploader une photo de profil. Sur WordPress, par d\u00e9faut, c&rsquo;est Gravatar qui g\u00e8re les avatars. J&rsquo;ai donc cr\u00e9\u00e9 un syst\u00e8me qui injecte l&rsquo;avatar VulTask dans WordPress, rempla\u00e7ant Gravatar pour les utilisateurs connect\u00e9s.<\/p>\n\n\n\n<p><strong>La bio<\/strong> : VulTask permet d&rsquo;ajouter une description \u00e0 son profil. Cette information est maintenant synchronis\u00e9e avec le champ \u00ab\u00a0Biographie\u00a0\u00bb de WordPress, qui appara\u00eet sous les articles et les commentaires.<\/p>\n\n\n\n<p><strong>Les r\u00f4les<\/strong> : VulTask distingue les utilisateurs normaux des administrateurs. Cette distinction est maintenant refl\u00e9t\u00e9e dans WordPress : un admin VulTask devient automatiquement administrateur WordPress.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Chapitre 5 : Le r\u00e9sultat \u2014 L&rsquo;exp\u00e9rience invisible<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Le parcours utilisateur aujourd&rsquo;hui<\/h3>\n\n\n\n<p>Aujourd&rsquo;hui, voici ce que vit un utilisateur de VulTask :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Tu te connectes \u00e0 VulTask<\/strong> avec ton email et ton mot de passe<\/li>\n\n\n\n<li><strong>Tu navigues vers le blog<\/strong> en cliquant sur le lien dans le menu<\/li>\n\n\n\n<li><strong>Tu es automatiquement connect\u00e9<\/strong> \u2014 pas de formulaire, pas de question<\/li>\n\n\n\n<li><strong>Ton avatar appara\u00eet<\/strong> dans les commentaires<\/li>\n\n\n\n<li><strong>Ta bio s&rsquo;affiche<\/strong> sous tes commentaires<\/li>\n\n\n\n<li><strong>Tu te d\u00e9connectes<\/strong> de VulTask ? Tu es d\u00e9connect\u00e9 du blog aussi<\/li>\n<\/ol>\n\n\n\n<p>Et dans l&rsquo;autre sens :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Tu arrives sur le blog<\/strong> et tu te connectes via WordPress<\/li>\n\n\n\n<li><strong>Tu navigues vers VulTask<\/strong> pour g\u00e9rer tes projets<\/li>\n\n\n\n<li><strong>Tu es automatiquement connect\u00e9<\/strong> \u2014 z\u00e9ro friction<\/li>\n<\/ol>\n\n\n\n<p>Une exp\u00e9rience fluide. Invisible. <strong>Comme \u00e7a aurait toujours d\u00fb \u00eatre.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">La magie de l&rsquo;invisible<\/h3>\n\n\n\n<p>Vous savez ce qu&rsquo;il y a de beau dans ce r\u00e9sultat ?<\/p>\n\n\n\n<p>Personne ne le remarquera.<\/p>\n\n\n\n<p>Aucun utilisateur ne se dira : <em>\u00ab\u00a0Wow, c&rsquo;est g\u00e9nial, je n&rsquo;ai pas eu \u00e0 me reconnecter !\u00a0\u00bb<\/em> Parce que c&rsquo;est le comportement attendu. C&rsquo;est ce qui aurait d\u00fb se passer depuis le d\u00e9but.<\/p>\n\n\n\n<p>La magie, c&rsquo;est quand la technologie dispara\u00eet.<\/p>\n\n\n\n<p>Les meilleures interfaces sont celles qu&rsquo;on ne remarque pas. Personne ne devrait avoir \u00e0 penser aux tokens, aux cookies, aux sessions, aux collations MySQL. L&rsquo;utilisateur veut juste que \u00e7a marche. Point.<\/p>\n\n\n\n<p>Et maintenant, \u00e7a marche.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Chapitre 6 : Les le\u00e7ons apprises<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Les d\u00e9tails \u00ab\u00a0mineurs\u00a0\u00bb ne le sont jamais<\/h3>\n\n\n\n<p>Cette int\u00e9gration SSO n&rsquo;\u00e9tait pas dans ma roadmap. Ce n&rsquo;\u00e9tait pas une fonctionnalit\u00e9 demand\u00e9e par les utilisateurs. Ce n&rsquo;\u00e9tait m\u00eame pas visible \u2014 au sens o\u00f9 personne ne la verra fonctionner.<\/p>\n\n\n\n<p>Et pourtant, elle fait une diff\u00e9rence \u00e9norme.<\/p>\n\n\n\n<p>Ce qui nous semble acceptable en tant que cr\u00e9ateur est souvent frustrant pour celui qui utilise notre produit au quotidien. Nous sommes habitu\u00e9s aux limitations de notre propre syst\u00e8me. Nous connaissons les contournements. Nous savons pourquoi les choses sont comme elles sont.<\/p>\n\n\n\n<p>L&rsquo;utilisateur, lui, ne sait rien de tout \u00e7a. Il veut juste que \u00e7a marche.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. La dette d&rsquo;exp\u00e9rience s&rsquo;accumule silencieusement<\/h3>\n\n\n\n<p>On parle beaucoup de dette technique : ce code qu&rsquo;on devrait refactorer, ces tests qu&rsquo;on devrait \u00e9crire, cette architecture qu&rsquo;on devrait repenser.<\/p>\n\n\n\n<p>Mais il existe aussi une <strong>dette d&rsquo;exp\u00e9rience<\/strong> : ces frictions qu&rsquo;on tol\u00e8re, ces incoh\u00e9rences qu&rsquo;on ignore, ces petits irritants qu&rsquo;on remet \u00e0 plus tard.<\/p>\n\n\n\n<p>Cette dette ne g\u00e9n\u00e8re pas d&rsquo;erreurs dans les logs. Elle ne fait pas planter l&rsquo;application. Mais elle s&rsquo;accumule. Et un jour, elle se paie. Sous forme d&rsquo;utilisateurs qui partent sans explication. De commentaires qu&rsquo;on ne re\u00e7oit jamais. D&rsquo;engagement qui s&rsquo;\u00e9rode.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. L&rsquo;int\u00e9gration est un m\u00e9tier \u00e0 part enti\u00e8re<\/h3>\n\n\n\n<p>Faire dialoguer des syst\u00e8mes qui n&rsquo;ont pas \u00e9t\u00e9 con\u00e7us pour communiquer, c&rsquo;est un vrai d\u00e9fi. Ce n&rsquo;est pas juste \u00ab\u00a0connecter deux APIs\u00a0\u00bb. C&rsquo;est comprendre les paradigmes de chaque syst\u00e8me, leurs contraintes, leurs particularit\u00e9s. C&rsquo;est trouver le terrain d&rsquo;entente.<\/p>\n\n\n\n<p>C&rsquo;est mon m\u00e9tier d&rsquo;int\u00e9grateur logiciel, et j&rsquo;en apprends encore tous les jours.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Le temps investi dans l&rsquo;exp\u00e9rience n&rsquo;est jamais perdu<\/h3>\n\n\n\n<p>Ces heures pass\u00e9es \u00e0 debugger des cookies et des collations auraient pu \u00eatre consacr\u00e9es \u00e0 d\u00e9velopper de nouvelles fonctionnalit\u00e9s. Un nouveau type de vue. Un nouvel outil de reporting. Une nouvelle int\u00e9gration avec un service tiers.<\/p>\n\n\n\n<p>Mais une exp\u00e9rience fluide fid\u00e9lise. Une friction, m\u00eame mineure, fait fuir.<\/p>\n\n\n\n<p>Sur le long terme, investir dans l&rsquo;exp\u00e9rience utilisateur rapporte toujours plus qu&#8217;empiler les fonctionnalit\u00e9s.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. Documenter le parcours a autant de valeur que le r\u00e9sultat<\/h3>\n\n\n\n<p>En \u00e9crivant cet article, je r\u00e9alise que le chemin parcouru est aussi instructif que la destination. Les erreurs commises, les impasses explor\u00e9es, les solutions trouv\u00e9es&#8230; tout cela constitue un savoir pr\u00e9cieux.<\/p>\n\n\n\n<p>Si cet article peut \u00e9viter \u00e0 un autre d\u00e9veloppeur de perdre des heures sur les m\u00eames probl\u00e8mes, alors le temps pass\u00e9 \u00e0 le r\u00e9diger aura \u00e9t\u00e9 bien investi.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Chapitre 7 : Et maintenant ?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Les fondations sont pos\u00e9es<\/h3>\n\n\n\n<p>Cette int\u00e9gration SSO n&rsquo;est qu&rsquo;un d\u00e9but. Elle pose les fondations d&rsquo;un \u00e9cosyst\u00e8me unifi\u00e9 o\u00f9 l&rsquo;utilisateur navigue sans friction entre diff\u00e9rents services.<\/p>\n\n\n\n<p>VulTask n&rsquo;est plus une application isol\u00e9e. C&rsquo;est le c\u0153ur d&rsquo;une plateforme qui peut s&rsquo;\u00e9tendre, int\u00e9grer d&rsquo;autres outils, cr\u00e9er de nouvelles synergies.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Les prochaines \u00e9tapes envisag\u00e9es<\/h3>\n\n\n\n<p>Maintenant que VulTask et WordPress se parlent, de nouvelles possibilit\u00e9s s&rsquo;ouvrent :<\/p>\n\n\n\n<p><strong>Commentaires \u2192 Journal d&rsquo;activit\u00e9<\/strong> : Les commentaires post\u00e9s sur le blog pourraient appara\u00eetre dans le journal d&rsquo;activit\u00e9 VulTask de l&rsquo;utilisateur. Une fa\u00e7on de garder trace de ses contributions, de valoriser son engagement.<\/p>\n\n\n\n<p><strong>Articles \u2192 T\u00e2ches<\/strong> : Quand je commence \u00e0 r\u00e9diger un article, je pourrais automatiquement cr\u00e9er une t\u00e2che dans VulTask pour suivre sa progression. \u00ab\u00a0R\u00e9diger l&rsquo;article sur le SSO\u00a0\u00bb, avec des sous-t\u00e2ches : \u00ab\u00a0Plan\u00a0\u00bb, \u00ab\u00a0Premier jet\u00a0\u00bb, \u00ab\u00a0Relecture\u00a0\u00bb, \u00ab\u00a0Publication\u00a0\u00bb.<\/p>\n\n\n\n<p><strong>Gamification \u00e9tendue<\/strong> : Le syst\u00e8me de points et d&rsquo;achievements de VulTask pourrait r\u00e9compenser l&rsquo;engagement sur le blog. Commenter un article ? 10 points. Avoir son commentaire lik\u00e9 ? 5 points suppl\u00e9mentaires. \u00catre le premier \u00e0 commenter ? Un achievement d\u00e9bloqu\u00e9.<\/p>\n\n\n\n<p><strong>Notifications cross-platform<\/strong> : Recevoir une notification dans VulTask quand quelqu&rsquo;un r\u00e9pond \u00e0 votre commentaire sur le blog. Ou l&rsquo;inverse : \u00eatre notifi\u00e9 par email quand une t\u00e2che VulTask est modifi\u00e9e.<\/p>\n\n\n\n<p>Les possibilit\u00e9s sont infinies quand les syst\u00e8mes communiquent.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00c9pilogue : La question qui reste<\/h2>\n\n\n\n<p>J&rsquo;ai commenc\u00e9 cet article avec une question : <em>\u00ab\u00a0Pourquoi je dois me reconnecter alors que je suis d\u00e9j\u00e0 connect\u00e9 ?\u00a0\u00bb<\/em><\/p>\n\n\n\n<p>Cette question a trouv\u00e9 sa r\u00e9ponse. Techniquement, du moins.<\/p>\n\n\n\n<p>Mais une autre question demeure, plus large, plus fondamentale :<\/p>\n\n\n\n<p><strong>Quelles sont les frictions que nous acceptons sans les questionner ?<\/strong><\/p>\n\n\n\n<p>Dans nos produits. Dans nos processus. Dans nos vies.<\/p>\n\n\n\n<p>Ces petits irritants qui \u00ab\u00a0ne sont pas si graves\u00a0\u00bb. Ces incoh\u00e9rences qui \u00ab\u00a0fonctionnent quand m\u00eame\u00a0\u00bb. Ces \u00e9tapes suppl\u00e9mentaires qui \u00ab\u00a0ne prennent qu&rsquo;une seconde\u00a0\u00bb.<\/p>\n\n\n\n<p>Parfois, les plus grandes am\u00e9liorations viennent de la r\u00e9solution des plus petits irritants.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Et toi ?<\/h2>\n\n\n\n<p>C&rsquo;est quoi le petit d\u00e9tail UX qui t&rsquo;a rendu fou r\u00e9cemment ? Cette friction que tout le monde accepte mais qui te semble inacceptable ?<\/p>\n\n\n\n<p>J&rsquo;adorerais lire ton histoire dans les commentaires. Et cette fois, tu n&rsquo;auras pas \u00e0 te reconnecter pour la partager. \ud83d\ude09<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><em>VulTask est gratuit et open source. Si tu cherches un outil de gestion de projet simple, efficace, et maintenant parfaitement int\u00e9gr\u00e9 \u00e0 son blog, <a href=\"https:\/\/www.vultask.fr\/\">cr\u00e9e ton compte gratuitement sur VulTask.fr<\/a>.<\/em> \ud83e\udd8a<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>\u00c0 propos de l&rsquo;auteur<\/strong><\/p>\n\n\n\n<p>Je suis Daniel, int\u00e9grateur logiciel et d\u00e9veloppeur solo derri\u00e8re VulTask. Quand je ne debugge pas des cookies ou des collations MySQL, je r\u00e9fl\u00e9chis \u00e0 comment rendre la gestion de projet plus simple et plus humaine. Tu peux me suivre sur LinkedIn pour plus d&rsquo;histoires de ce genre.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Comment une simple frustration utilisateur m&rsquo;a conduit \u00e0 d\u00e9velopper un syst\u00e8me d&rsquo;authentification unique entre mon application et mon blog \u2014 et ce que j&rsquo;ai appris&#8230;<\/p>\n","protected":false},"author":2,"featured_media":77,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[4,5],"tags":[],"class_list":["post-76","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agilite","category-vultask"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Int\u00e9gration SSO WordPress Application PHP Facile<\/title>\n<meta name=\"description\" content=\"Pourquoi se reconnecter au blog quand on est d\u00e9j\u00e0 connect\u00e9 \u00e0 l&#039;application ? J&#039;ai d\u00e9velopp\u00e9 un SSO entre VulTask et WordPress. Voici comment et pourquoi.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.vultask.fr\/blog\/2026\/02\/15\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Int\u00e9gration SSO WordPress Application PHP Facile\" \/>\n<meta property=\"og:description\" content=\"Pourquoi se reconnecter au blog quand on est d\u00e9j\u00e0 connect\u00e9 \u00e0 l&#039;application ? J&#039;ai d\u00e9velopp\u00e9 un SSO entre VulTask et WordPress. Voici comment et pourquoi.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vultask.fr\/blog\/2026\/02\/15\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Vultask.fr\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=61585886871669\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-15T16:05:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-17T08:56:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.vultask.fr\/blog\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-15-fevr.-2026-16_54_44-1024x683.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"683\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tasko\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@tasko_fr\" \/>\n<meta name=\"twitter:site\" content=\"@tasko_fr\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tasko\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/2026\\\/02\\\/15\\\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/2026\\\/02\\\/15\\\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\\\/\"},\"author\":{\"name\":\"Tasko\",\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/#\\\/schema\\\/person\\\/1390be03f74021ffdde7b60b48f70889\"},\"headline\":\"Pourquoi je dois me reconnecter alors que je suis d\u00e9j\u00e0 connect\u00e9 ? L&rsquo;histoire d&rsquo;une int\u00e9gration SSO entre VulTask et WordPress\",\"datePublished\":\"2026-02-15T16:05:54+00:00\",\"dateModified\":\"2026-02-17T08:56:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/2026\\\/02\\\/15\\\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\\\/\"},\"wordCount\":3385,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/2026\\\/02\\\/15\\\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/ChatGPT-Image-15-fevr.-2026-16_54_44.png\",\"articleSection\":[\"Agilit\u00e9\",\"Vultask\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/2026\\\/02\\\/15\\\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/2026\\\/02\\\/15\\\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\\\/\",\"url\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/2026\\\/02\\\/15\\\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\\\/\",\"name\":\"Int\u00e9gration SSO WordPress Application PHP Facile\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/2026\\\/02\\\/15\\\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/2026\\\/02\\\/15\\\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/ChatGPT-Image-15-fevr.-2026-16_54_44.png\",\"datePublished\":\"2026-02-15T16:05:54+00:00\",\"dateModified\":\"2026-02-17T08:56:05+00:00\",\"description\":\"Pourquoi se reconnecter au blog quand on est d\u00e9j\u00e0 connect\u00e9 \u00e0 l'application ? J'ai d\u00e9velopp\u00e9 un SSO entre VulTask et WordPress. Voici comment et pourquoi.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/2026\\\/02\\\/15\\\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/2026\\\/02\\\/15\\\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/2026\\\/02\\\/15\\\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/ChatGPT-Image-15-fevr.-2026-16_54_44.png\",\"contentUrl\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/ChatGPT-Image-15-fevr.-2026-16_54_44.png\",\"width\":1536,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/2026\\\/02\\\/15\\\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Agilit\u00e9\",\"item\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/category\\\/agilite\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Pourquoi je dois me reconnecter alors que je suis d\u00e9j\u00e0 connect\u00e9 ? L&rsquo;histoire d&rsquo;une int\u00e9gration SSO entre VulTask et WordPress\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/\",\"name\":\"Blog Vultask.fr\",\"description\":\"Devenez plus malin que votre to-do list!\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/#organization\",\"name\":\"Blog Vultask.fr\",\"url\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/logo-white.png\",\"contentUrl\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/logo-white.png\",\"width\":592,\"height\":581,\"caption\":\"Blog Vultask.fr\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/profile.php?id=61585886871669\",\"https:\\\/\\\/x.com\\\/tasko_fr\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/#\\\/schema\\\/person\\\/1390be03f74021ffdde7b60b48f70889\",\"name\":\"Tasko\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/680feca7005e716e2bdc0c7c4c8f5c998cfb744346fba22958f9ca2b38f05262?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/680feca7005e716e2bdc0c7c4c8f5c998cfb744346fba22958f9ca2b38f05262?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/680feca7005e716e2bdc0c7c4c8f5c998cfb744346fba22958f9ca2b38f05262?s=96&d=mm&r=g\",\"caption\":\"Tasko\"},\"sameAs\":[\"https:\\\/\\\/www.vultask.fr\"],\"url\":\"https:\\\/\\\/www.vultask.fr\\\/blog\\\/author\\\/tasko\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Int\u00e9gration SSO WordPress Application PHP Facile","description":"Pourquoi se reconnecter au blog quand on est d\u00e9j\u00e0 connect\u00e9 \u00e0 l'application ? J'ai d\u00e9velopp\u00e9 un SSO entre VulTask et WordPress. Voici comment et pourquoi.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.vultask.fr\/blog\/2026\/02\/15\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\/","og_locale":"fr_FR","og_type":"article","og_title":"Int\u00e9gration SSO WordPress Application PHP Facile","og_description":"Pourquoi se reconnecter au blog quand on est d\u00e9j\u00e0 connect\u00e9 \u00e0 l'application ? J'ai d\u00e9velopp\u00e9 un SSO entre VulTask et WordPress. Voici comment et pourquoi.","og_url":"https:\/\/www.vultask.fr\/blog\/2026\/02\/15\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\/","og_site_name":"Blog Vultask.fr","article_publisher":"https:\/\/www.facebook.com\/profile.php?id=61585886871669","article_published_time":"2026-02-15T16:05:54+00:00","article_modified_time":"2026-02-17T08:56:05+00:00","og_image":[{"width":1024,"height":683,"url":"https:\/\/www.vultask.fr\/blog\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-15-fevr.-2026-16_54_44-1024x683.png","type":"image\/png"}],"author":"Tasko","twitter_card":"summary_large_image","twitter_creator":"@tasko_fr","twitter_site":"@tasko_fr","twitter_misc":{"\u00c9crit par":"Tasko","Dur\u00e9e de lecture estim\u00e9e":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.vultask.fr\/blog\/2026\/02\/15\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\/#article","isPartOf":{"@id":"https:\/\/www.vultask.fr\/blog\/2026\/02\/15\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\/"},"author":{"name":"Tasko","@id":"https:\/\/www.vultask.fr\/blog\/#\/schema\/person\/1390be03f74021ffdde7b60b48f70889"},"headline":"Pourquoi je dois me reconnecter alors que je suis d\u00e9j\u00e0 connect\u00e9 ? L&rsquo;histoire d&rsquo;une int\u00e9gration SSO entre VulTask et WordPress","datePublished":"2026-02-15T16:05:54+00:00","dateModified":"2026-02-17T08:56:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.vultask.fr\/blog\/2026\/02\/15\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\/"},"wordCount":3385,"commentCount":0,"publisher":{"@id":"https:\/\/www.vultask.fr\/blog\/#organization"},"image":{"@id":"https:\/\/www.vultask.fr\/blog\/2026\/02\/15\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vultask.fr\/blog\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-15-fevr.-2026-16_54_44.png","articleSection":["Agilit\u00e9","Vultask"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.vultask.fr\/blog\/2026\/02\/15\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.vultask.fr\/blog\/2026\/02\/15\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\/","url":"https:\/\/www.vultask.fr\/blog\/2026\/02\/15\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\/","name":"Int\u00e9gration SSO WordPress Application PHP Facile","isPartOf":{"@id":"https:\/\/www.vultask.fr\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.vultask.fr\/blog\/2026\/02\/15\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/www.vultask.fr\/blog\/2026\/02\/15\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vultask.fr\/blog\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-15-fevr.-2026-16_54_44.png","datePublished":"2026-02-15T16:05:54+00:00","dateModified":"2026-02-17T08:56:05+00:00","description":"Pourquoi se reconnecter au blog quand on est d\u00e9j\u00e0 connect\u00e9 \u00e0 l'application ? J'ai d\u00e9velopp\u00e9 un SSO entre VulTask et WordPress. Voici comment et pourquoi.","breadcrumb":{"@id":"https:\/\/www.vultask.fr\/blog\/2026\/02\/15\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vultask.fr\/blog\/2026\/02\/15\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.vultask.fr\/blog\/2026\/02\/15\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\/#primaryimage","url":"https:\/\/www.vultask.fr\/blog\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-15-fevr.-2026-16_54_44.png","contentUrl":"https:\/\/www.vultask.fr\/blog\/wp-content\/uploads\/2026\/02\/ChatGPT-Image-15-fevr.-2026-16_54_44.png","width":1536,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/www.vultask.fr\/blog\/2026\/02\/15\/pourquoi-je-dois-me-reconnecter-alors-que-je-suis-deja-connecte-lhistoire-dune-integration-sso-entre-vultask-et-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.vultask.fr\/blog\/"},{"@type":"ListItem","position":2,"name":"Agilit\u00e9","item":"https:\/\/www.vultask.fr\/blog\/category\/agilite\/"},{"@type":"ListItem","position":3,"name":"Pourquoi je dois me reconnecter alors que je suis d\u00e9j\u00e0 connect\u00e9 ? L&rsquo;histoire d&rsquo;une int\u00e9gration SSO entre VulTask et WordPress"}]},{"@type":"WebSite","@id":"https:\/\/www.vultask.fr\/blog\/#website","url":"https:\/\/www.vultask.fr\/blog\/","name":"Blog Vultask.fr","description":"Devenez plus malin que votre to-do list!","publisher":{"@id":"https:\/\/www.vultask.fr\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vultask.fr\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.vultask.fr\/blog\/#organization","name":"Blog Vultask.fr","url":"https:\/\/www.vultask.fr\/blog\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.vultask.fr\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.vultask.fr\/blog\/wp-content\/uploads\/2026\/02\/logo-white.png","contentUrl":"https:\/\/www.vultask.fr\/blog\/wp-content\/uploads\/2026\/02\/logo-white.png","width":592,"height":581,"caption":"Blog Vultask.fr"},"image":{"@id":"https:\/\/www.vultask.fr\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61585886871669","https:\/\/x.com\/tasko_fr"]},{"@type":"Person","@id":"https:\/\/www.vultask.fr\/blog\/#\/schema\/person\/1390be03f74021ffdde7b60b48f70889","name":"Tasko","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/680feca7005e716e2bdc0c7c4c8f5c998cfb744346fba22958f9ca2b38f05262?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/680feca7005e716e2bdc0c7c4c8f5c998cfb744346fba22958f9ca2b38f05262?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/680feca7005e716e2bdc0c7c4c8f5c998cfb744346fba22958f9ca2b38f05262?s=96&d=mm&r=g","caption":"Tasko"},"sameAs":["https:\/\/www.vultask.fr"],"url":"https:\/\/www.vultask.fr\/blog\/author\/tasko\/"}]}},"_links":{"self":[{"href":"https:\/\/www.vultask.fr\/blog\/wp-json\/wp\/v2\/posts\/76","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vultask.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vultask.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vultask.fr\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vultask.fr\/blog\/wp-json\/wp\/v2\/comments?post=76"}],"version-history":[{"count":1,"href":"https:\/\/www.vultask.fr\/blog\/wp-json\/wp\/v2\/posts\/76\/revisions"}],"predecessor-version":[{"id":78,"href":"https:\/\/www.vultask.fr\/blog\/wp-json\/wp\/v2\/posts\/76\/revisions\/78"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.vultask.fr\/blog\/wp-json\/wp\/v2\/media\/77"}],"wp:attachment":[{"href":"https:\/\/www.vultask.fr\/blog\/wp-json\/wp\/v2\/media?parent=76"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vultask.fr\/blog\/wp-json\/wp\/v2\/categories?post=76"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vultask.fr\/blog\/wp-json\/wp\/v2\/tags?post=76"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}