// -- PAGE PERMETTANT DE VALIDER LA CRÉATION DE SON COMPTE /// Un token est transmis en paramètre de l'Url. Il a une validité limité dans le temps. /// Si le token n'est pas/plus valide, on redirige l'utilisateur vers la page de connexion pour obtenir un nouveau lien. /// Si le token est ok, on l'informe que tout est ok et lui propose de se connecter. /// Si l'utilisateur a déjà une session active valide, c'est qu'il a déjà cliqué sur le lien. On le redirige vers sa page d'accueil. // Fichier de configuration tirés du backend : import { apiUrl, availableLangs, theme } from "../../config/instance.js"; const lang=availableLangs[0]; import { checkSubscribeTokenRoute, userRoutes } from "../../config/users.js"; const configTemplate = require("../../views/"+theme+"/config/"+lang+".js"); // Importation des fonctions utiles au script : import { getLocaly, saveLocaly } from "./tools/clientstorage.js"; import { addElement } from "./tools/dom.js"; import { helloDev } from "./tools/everywhere.js"; import { getUrlParams } from "./tools/url.js"; import { checkSession } from "./tools/users.js"; // Dictionnaires : const txtServerError = require("../../lang/"+lang+"/general").serverError; const txtUsers = require("../../lang/"+lang+"/user"); const divResponse = document.getElementById("response"); const initialise = async () => { try { // si l'utilisateur est déjà connecté, pas la peine d'aller + loin : const isConnected=await checkSession(); if(isConnected) { saveLocaly("message", { message: txtUsers.alreadyConnected, color:"info" }); const user=getLocaly("user", true); const homePage=user.status+"HomePage";// lors de la création d'un compte, seul le statut "user" est possible. window.location.assign("/"+configTemplate[homePage]); } else { const datas=getUrlParams(); if(datas && datas.t!==undefined) { const xhr = new XMLHttpRequest(); xhr.open("GET", apiUrl+userRoutes+checkSubscribeTokenRoute+datas.t); xhr.onreadystatechange = function() { if (this.readyState == XMLHttpRequest.DONE) { let response=JSON.parse(this.responseText); if (this.status === 200 && response.userId != undefined && response.token != undefined) { saveLocaly("message", { message: txtUsers.validationMessage, color:"success" });// pour l'afficher sur la page suivante window.location.assign("/"+configTemplate.connectionPage); } else if ((this.status === 200 || this.status === 404) && response.errors != undefined) { response.errors = response.errors.join("
"); addElement(divResponse, "p", response.errors, "", ["error"]); } else addElement(divResponse, "p", txtUsers.badLinkValidationMessage.replace("#URL", configTemplate.connectionPage), "", ["error"]); } } xhr.send(); } } } catch(e) { console.error(e); addElement(divResponse, "p", txtServerError, "", ["error"]); } } initialise(); helloDev();