{"id":172,"date":"2026-04-19T07:00:49","date_gmt":"2026-04-19T05:00:49","guid":{"rendered":"https:\/\/www.1coachcarriere.com\/?page_id=172"},"modified":"2026-04-19T08:56:50","modified_gmt":"2026-04-19T06:56:50","slug":"auth","status":"publish","type":"page","link":"https:\/\/www.1coachcarriere.com\/index.php\/auth\/","title":{"rendered":"Cr\u00e9er un compte"},"content":{"rendered":"\n<div id=\"careercoach-auth-root\" style=\"max-width:760px;margin:40px auto;padding:32px;border:1px solid #e5e7eb;border-radius:16px;background:#ffffff;font-family:Arial,sans-serif;box-shadow:0 10px 30px rgba(0,0,0,0.06);\">\n  <h1 style=\"margin-top:0;font-size:36px;line-height:1.1;color:#111827;\">CareerCoach Access<\/h1>\n  <p style=\"font-size:18px;line-height:1.6;color:#374151;\">\n    Connectez-vous ou cr\u00e9ez votre compte pour sauvegarder votre progression et reprendre votre diagnostic plus tard.\n  <\/p>\n\n  <div style=\"display:flex;gap:12px;margin-top:24px;\">\n    <button id=\"tab-login\" type=\"button\" style=\"padding:12px 18px;border:none;border-radius:10px;background:#111827;color:#ffffff;font-size:16px;cursor:pointer;\">\n      Connexion\n    <\/button>\n    <button id=\"tab-register\" type=\"button\" style=\"padding:12px 18px;border:1px solid #d1d5db;border-radius:10px;background:#ffffff;color:#111827;font-size:16px;cursor:pointer;\">\n      Cr\u00e9er un compte\n    <\/button>\n  <\/div>\n\n  <div id=\"auth-status\" style=\"margin-top:24px;padding:16px 18px;border-radius:12px;background:#f3f4f6;color:#111827;\">\n    Choisissez une action pour continuer.\n  <\/div>\n\n  <div id=\"return-box\" style=\"margin-top:16px;display:none;\">\n    <a id=\"return-link\" href=\"#\" style=\"display:inline-block;background:#111827;color:#ffffff;text-decoration:none;border-radius:10px;padding:12px 18px;font-size:16px;\">\n      Retourner au coaching\n    <\/a>\n  <\/div>\n\n  <div id=\"panel-login\" style=\"margin-top:24px;\">\n    <h2 style=\"margin-top:0;color:#111827;\">Connexion<\/h2>\n    <form id=\"login-form\">\n      <label for=\"login-email\" style=\"display:block;font-weight:700;color:#111827;margin-bottom:8px;\">Email<\/label>\n      <input id=\"login-email\" type=\"email\" required style=\"width:100%;padding:14px 16px;border:1px solid #d1d5db;border-radius:10px;font-size:16px;box-sizing:border-box;margin-bottom:16px;\" \/>\n\n      <label for=\"login-password\" style=\"display:block;font-weight:700;color:#111827;margin-bottom:8px;\">Mot de passe<\/label>\n      <div style=\"display:flex;gap:10px;align-items:center;\">\n        <input id=\"login-password\" type=\"password\" required style=\"flex:1;padding:14px 16px;border:1px solid #d1d5db;border-radius:10px;font-size:16px;box-sizing:border-box;\" \/>\n        <button id=\"toggle-login-password\" type=\"button\" style=\"padding:12px 16px;border:1px solid #d1d5db;border-radius:10px;background:#ffffff;color:#111827;font-size:14px;cursor:pointer;white-space:nowrap;\">\n          Afficher\n        <\/button>\n      <\/div>\n\n      <div style=\"margin-top:12px;\">\n        <a href=\"https:\/\/www.1coachcarriere.com\/index.php\/reset-password\/\" style=\"color:#1d4ed8;text-decoration:none;\">Mot de passe oubli\u00e9 ?<\/a>\n      <\/div>\n\n      <button id=\"login-submit\" type=\"submit\" style=\"margin-top:20px;background:#111827;color:#ffffff;border:none;border-radius:10px;padding:12px 18px;font-size:16px;cursor:pointer;\">\n        Se connecter\n      <\/button>\n    <\/form>\n  <\/div>\n\n  <div id=\"panel-register\" style=\"margin-top:24px;display:none;\">\n    <h2 style=\"margin-top:0;color:#111827;\">Cr\u00e9er un compte<\/h2>\n    <form id=\"register-form\">\n      <label for=\"register-first-name\" style=\"display:block;font-weight:700;color:#111827;margin-bottom:8px;\">Pr\u00e9nom<\/label>\n      <input id=\"register-first-name\" type=\"text\" required style=\"width:100%;padding:14px 16px;border:1px solid #d1d5db;border-radius:10px;font-size:16px;box-sizing:border-box;margin-bottom:16px;\" \/>\n\n      <label for=\"register-last-name\" style=\"display:block;font-weight:700;color:#111827;margin-bottom:8px;\">Nom<\/label>\n      <input id=\"register-last-name\" type=\"text\" required style=\"width:100%;padding:14px 16px;border:1px solid #d1d5db;border-radius:10px;font-size:16px;box-sizing:border-box;margin-bottom:16px;\" \/>\n\n      <label for=\"register-email\" style=\"display:block;font-weight:700;color:#111827;margin-bottom:8px;\">Email<\/label>\n      <input id=\"register-email\" type=\"email\" required style=\"width:100%;padding:14px 16px;border:1px solid #d1d5db;border-radius:10px;font-size:16px;box-sizing:border-box;margin-bottom:16px;\" \/>\n\n      <label for=\"register-password\" style=\"display:block;font-weight:700;color:#111827;margin-bottom:8px;\">Mot de passe<\/label>\n      <div style=\"display:flex;gap:10px;align-items:center;margin-bottom:16px;\">\n        <input id=\"register-password\" type=\"password\" minlength=\"10\" required style=\"flex:1;padding:14px 16px;border:1px solid #d1d5db;border-radius:10px;font-size:16px;box-sizing:border-box;\" \/>\n        <button id=\"toggle-register-password\" type=\"button\" style=\"padding:12px 16px;border:1px solid #d1d5db;border-radius:10px;background:#ffffff;color:#111827;font-size:14px;cursor:pointer;white-space:nowrap;\">\n          Afficher\n        <\/button>\n      <\/div>\n\n      <label for=\"register-password-confirm\" style=\"display:block;font-weight:700;color:#111827;margin-bottom:8px;\">Confirmer le mot de passe<\/label>\n      <div style=\"display:flex;gap:10px;align-items:center;\">\n        <input id=\"register-password-confirm\" type=\"password\" minlength=\"10\" required style=\"flex:1;padding:14px 16px;border:1px solid #d1d5db;border-radius:10px;font-size:16px;box-sizing:border-box;\" \/>\n        <button id=\"toggle-register-password-confirm\" type=\"button\" style=\"padding:12px 16px;border:1px solid #d1d5db;border-radius:10px;background:#ffffff;color:#111827;font-size:14px;cursor:pointer;white-space:nowrap;\">\n          Afficher\n        <\/button>\n      <\/div>\n\n      <p style=\"margin-top:10px;color:#6b7280;font-size:14px;\">\n        Minimum 10 caract\u00e8res. Un email de v\u00e9rification vous sera envoy\u00e9.\n      <\/p>\n\n      <button id=\"register-submit\" type=\"submit\" style=\"margin-top:20px;background:#111827;color:#ffffff;border:none;border-radius:10px;padding:12px 18px;font-size:16px;cursor:pointer;\">\n        Cr\u00e9er mon compte\n      <\/button>\n    <\/form>\n  <\/div>\n\n  <div style=\"margin-top:24px;padding:20px;border-radius:12px;background:#eef6ff;border:1px solid #bfdbfe;\">\n    <h2 style=\"margin-top:0;color:#1e3a8a;\">Bient\u00f4t disponible<\/h2>\n    <p style=\"color:#1d4ed8;margin-bottom:0;\">\n      Continuer avec Google.\n    <\/p>\n  <\/div>\n<\/div>\n\n<script>\n(function () {\n  var apiBase = \"https:\/\/careercoach-actions-api-780560323101.us-central1.run.app\";\n  var params = new URLSearchParams(window.location.search);\n  var returnTo = params.get(\"return_to\") || \"\";\n\n  var tabLogin = document.getElementById(\"tab-login\");\n  var tabRegister = document.getElementById(\"tab-register\");\n  var panelLogin = document.getElementById(\"panel-login\");\n  var panelRegister = document.getElementById(\"panel-register\");\n  var statusEl = document.getElementById(\"auth-status\");\n  var returnBox = document.getElementById(\"return-box\");\n  var returnLink = document.getElementById(\"return-link\");\n\n  var loginForm = document.getElementById(\"login-form\");\n  var registerForm = document.getElementById(\"register-form\");\n\n  var loginSubmit = document.getElementById(\"login-submit\");\n  var registerSubmit = document.getElementById(\"register-submit\");\n\n  var loginPassword = document.getElementById(\"login-password\");\n  var registerPassword = document.getElementById(\"register-password\");\n  var registerPasswordConfirm = document.getElementById(\"register-password-confirm\");\n\n  var toggleLoginPassword = document.getElementById(\"toggle-login-password\");\n  var toggleRegisterPassword = document.getElementById(\"toggle-register-password\");\n  var toggleRegisterPasswordConfirm = document.getElementById(\"toggle-register-password-confirm\");\n\n  function setStatus(message, bg, color) {\n    statusEl.textContent = message;\n    statusEl.style.background = bg;\n    statusEl.style.color = color;\n  }\n\n  function showReturnLink() {\n    if (!returnTo) return;\n    returnLink.href = returnTo;\n    returnBox.style.display = \"block\";\n    setTimeout(function () {\n      window.location.href = returnTo;\n    }, 1200);\n  }\n\n  function switchToLogin() {\n    panelLogin.style.display = \"block\";\n    panelRegister.style.display = \"none\";\n    tabLogin.style.background = \"#111827\";\n    tabLogin.style.color = \"#ffffff\";\n    tabLogin.style.border = \"none\";\n    tabRegister.style.background = \"#ffffff\";\n    tabRegister.style.color = \"#111827\";\n    tabRegister.style.border = \"1px solid #d1d5db\";\n    setStatus(\"Connectez-vous pour reprendre votre progression.\", \"#f3f4f6\", \"#111827\");\n    returnBox.style.display = \"none\";\n  }\n\n  function switchToRegister() {\n    panelLogin.style.display = \"none\";\n    panelRegister.style.display = \"block\";\n    tabRegister.style.background = \"#111827\";\n    tabRegister.style.color = \"#ffffff\";\n    tabRegister.style.border = \"none\";\n    tabLogin.style.background = \"#ffffff\";\n    tabLogin.style.color = \"#111827\";\n    tabLogin.style.border = \"1px solid #d1d5db\";\n    setStatus(\"Cr\u00e9ez votre compte pour sauvegarder vos r\u00e9sultats et reprendre plus tard.\", \"#f3f4f6\", \"#111827\");\n    returnBox.style.display = \"none\";\n  }\n\n  function togglePassword(inputEl, buttonEl) {\n    if (inputEl.type === \"password\") {\n      inputEl.type = \"text\";\n      buttonEl.textContent = \"Masquer\";\n    } else {\n      inputEl.type = \"password\";\n      buttonEl.textContent = \"Afficher\";\n    }\n  }\n\n  toggleLoginPassword.addEventListener(\"click\", function () {\n    togglePassword(loginPassword, toggleLoginPassword);\n  });\n\n  toggleRegisterPassword.addEventListener(\"click\", function () {\n    togglePassword(registerPassword, toggleRegisterPassword);\n  });\n\n  toggleRegisterPasswordConfirm.addEventListener(\"click\", function () {\n    togglePassword(registerPasswordConfirm, toggleRegisterPasswordConfirm);\n  });\n\n  tabLogin.addEventListener(\"click\", switchToLogin);\n  tabRegister.addEventListener(\"click\", switchToRegister);\n\n  loginForm.addEventListener(\"submit\", async function (event) {\n    event.preventDefault();\n\n    var email = document.getElementById(\"login-email\").value.trim();\n    var password = loginPassword.value;\n\n    loginSubmit.disabled = true;\n    loginSubmit.textContent = \"Connexion...\";\n    setStatus(\"Connexion en cours...\", \"#f3f4f6\", \"#111827\");\n\n    try {\n      var response = await fetch(apiBase + \"\/auth\/login\", {\n        method: \"POST\",\n        credentials: \"include\",\n        headers: {\n          \"Content-Type\": \"application\/json\"\n        },\n        body: JSON.stringify({\n          email: email,\n          password: password\n        })\n      });\n\n      var data = await response.json().catch(function () {\n        return { error: \"Erreur inconnue\" };\n      });\n\n      if (response.ok) {\n        setStatus(\"Connexion r\u00e9ussie. Vous pouvez retourner dans votre coaching.\", \"#dcfce7\", \"#166534\");\n        loginForm.style.display = \"none\";\n        showReturnLink();\n        return;\n      }\n\n      setStatus(data.error || \"Connexion impossible.\", \"#fee2e2\", \"#991b1b\");\n    } catch (error) {\n      setStatus(\"Erreur r\u00e9seau pendant la connexion.\", \"#fee2e2\", \"#991b1b\");\n    } finally {\n      loginSubmit.disabled = false;\n      loginSubmit.textContent = \"Se connecter\";\n    }\n  });\n\n  registerForm.addEventListener(\"submit\", async function (event) {\n    event.preventDefault();\n\n    var firstName = document.getElementById(\"register-first-name\").value.trim();\n    var lastName = document.getElementById(\"register-last-name\").value.trim();\n    var email = document.getElementById(\"register-email\").value.trim();\n    var password = registerPassword.value;\n    var passwordConfirm = registerPasswordConfirm.value;\n\n    if (password !== passwordConfirm) {\n      setStatus(\"Les deux mots de passe ne correspondent pas.\", \"#fef3c7\", \"#92400e\");\n      return;\n    }\n\n    registerSubmit.disabled = true;\n    registerSubmit.textContent = \"Cr\u00e9ation...\";\n    setStatus(\"Cr\u00e9ation du compte en cours...\", \"#f3f4f6\", \"#111827\");\n\n    try {\n      var response = await fetch(apiBase + \"\/auth\/register\", {\n        method: \"POST\",\n        headers: {\n          \"Content-Type\": \"application\/json\"\n        },\n        body: JSON.stringify({\n          first_name: firstName,\n          last_name: lastName,\n          email: email,\n          password: password\n        })\n      });\n\n      var data = await response.json().catch(function () {\n        return { error: \"Erreur inconnue\" };\n      });\n\n      if (response.ok || response.status === 201) {\n        setStatus(\"Compte cr\u00e9\u00e9. V\u00e9rifiez votre email avant de vous connecter.\", \"#dbeafe\", \"#1d4ed8\");\n        registerForm.style.display = \"none\";\n        return;\n      }\n\n      setStatus(data.error || \"Cr\u00e9ation du compte impossible.\", \"#fee2e2\", \"#991b1b\");\n    } catch (error) {\n      setStatus(\"Erreur r\u00e9seau pendant la cr\u00e9ation du compte.\", \"#fee2e2\", \"#991b1b\");\n    } finally {\n      registerSubmit.disabled = false;\n      registerSubmit.textContent = \"Cr\u00e9er mon compte\";\n    }\n  });\n\n  switchToLogin();\n})();\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>CareerCoach Access Connectez-vous ou cr\u00e9ez votre compte pour sauvegarder votre progression et reprendre votre diagnostic plus tard. Connexion Cr\u00e9er un compte Choisissez une action pour continuer. Retourner au coaching Connexion Email Mot de passe Afficher Mot de passe oubli\u00e9 ? Se connecter Cr\u00e9er un compte Pr\u00e9nom Nom Email Mot de passe Afficher Confirmer le mot [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-172","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.1coachcarriere.com\/index.php\/wp-json\/wp\/v2\/pages\/172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.1coachcarriere.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.1coachcarriere.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.1coachcarriere.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.1coachcarriere.com\/index.php\/wp-json\/wp\/v2\/comments?post=172"}],"version-history":[{"count":13,"href":"https:\/\/www.1coachcarriere.com\/index.php\/wp-json\/wp\/v2\/pages\/172\/revisions"}],"predecessor-version":[{"id":186,"href":"https:\/\/www.1coachcarriere.com\/index.php\/wp-json\/wp\/v2\/pages\/172\/revisions\/186"}],"wp:attachment":[{"href":"https:\/\/www.1coachcarriere.com\/index.php\/wp-json\/wp\/v2\/media?parent=172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}