Requis : Charitable Pro 1.8.16+ Charitable Ambassadors 3.5.0+
Les comptes de collecte de fonds sans mot de passe fonctionnent en envoyant un lien de connexion unique par e-mail. Ces liens doivent exister quelque part jusqu'à ce qu'ils soient utilisés, et cette page explique exactement où, combien de temps, et comment les supprimer.
Si vous activez simplement la fonctionnalité, vous n'avez pas besoin de lire ceci. Ceci est destiné aux personnes qui veulent savoir ce qu'un plugin met dans leur base de données, et à toute personne gérant une demande de données ou une désinstallation.
La version courte
- Une table de base de données supplémentaire, créée la première fois que vous activez la connexion sans mot de passe.
- Elle contient des hachages des liens de connexion, jamais les liens eux-mêmes.
- Les lignes ont une courte durée de vie : un lien d'inscription dure 24 heures, un lien de connexion une heure.
- Désactiver la fonctionnalité laisse la table intacte. Rien n'est supprimé à votre insu.
- La désinstallation du plugin la laisse également intacte, délibérément, afin qu'une désactivation accidentelle ne détruise jamais de données.
Quand la table est créée
La table est créée la première fois que Comptes sans mot de passe est activé sur Charitable > Ambassadeurs > Modèles > Formulaire de soumission. Elle n'est pas créée lors de l'activation du plugin, et elle n'est pas créée sur les sites qui n'utilisent jamais la fonctionnalité.
Son nom suit le préfixe de votre base de données :
wp_charitable_ambassadors_signin_tokens
Si votre préfixe n'est pas wp_, substituez le vôtre.
Ce qu'il y a dans la table
Une ligne par lien de connexion émis. Les colonnes :
| Colonne | Ce qu'elle contient |
|---|---|
id |
Identifiant de ligne |
token_hash |
Un hachage HMAC-SHA256 du lien, indexé sur les sels de votre site |
purpose |
signup pour un nouveau compte, signin pour un collecteur de fonds récurrent |
email |
L'adresse à laquelle le lien a été envoyé |
user_id |
Le compte, pour un collecteur de fonds récurrent. 0 pour une nouvelle inscription, car aucun compte n'existe encore |
id_campagne |
La collecte de fonds à laquelle le lien se rapporte |
created_at |
Quand il a été émis |
expires_at |
Quand il cesse de fonctionner |
redeemed_at |
Lorsqu'il a été utilisé, ou vide s'il n'a pas été |
Le lien lui-même n'est jamais stocké. Seule une version hachée et clé est conservée, de sorte que quelqu'un qui lit cette table ne peut pas en reconstruire un lien de connexion fonctionnel. Le hachage est basé sur les sels propres à votre site, ce qui signifie qu'une copie de la table déplacée sur un autre site est inerte.
L'adresse est stockée en texte brut, car la fonctionnalité doit pouvoir envoyer un e-mail à la personne et vous montrer qui attend.
Durée de vie des lignes
| Type de lien | Durée de vie |
|---|---|
| Inscription (une nouvelle collecte de fonds) | 24 heures |
| Connexion (un collecteur de fonds revenant) | 1 heure |
Les liens sont à usage unique. L'utilisation d'un lien le marque comme utilisé, et la demande d'un nouveau lien annule tout lien précédent pour la même adresse, de sorte qu'il n'existe qu'un seul lien actif par personne à la fois.
Les états de vérification automatique
L'écran de soumission du formulaire rend compte de cette table afin que vous ne soyez pas laissé dans le doute. Les états que vous pouvez voir :
| État | Signification | Que faire |
|---|---|---|
| Activé, table présente | Normal. | Aucun. |
| Activé, table manquante | Les inscriptions et les connexions échouent. | Désactivez la fonctionnalité, puis réactivez-la. Cela recrée la table. |
| Activé, schéma obsolète | La table existe mais est antérieure à une mise à jour. | Un développeur peut la mettre à jour, voir la référence ci-dessous. |
| Activé, liens en attente | Un décompte des liens envoyés mais non cliqués. | Informationnel. Vérifiez 'En attente de connexion' si le nombre semble élevé. |
| Activé, e-mail de connexion désactivé | Les collecteurs de fonds revenant ne peuvent pas demander de lien. | Réactivez cet e-mail sous Charitable > Paramètres > E-mails. |
| Désactivé, table toujours présente | Vos données existantes sont préservées. | Rien. Il s'agit d'une mesure de sécurité, pas d'un problème. |
Désactivation de la fonctionnalité (désactivation logicielle)
Décochez Comptes sans mot de passe et la fonctionnalité s'arrête : aucun nouveau lien n'est émis et le formulaire de création de campagne demande à nouveau un mot de passe.
Le tableau et ses lignes sont conservés. Toute personne disposant déjà d'un lien valide peut toujours l'utiliser, et les comptes déjà créés continuent de fonctionner normalement, car c'est ce qu'ils sont. La réactivation de la fonctionnalité reprend là où vous vous étiez arrêté.
Rien n'est perdu en basculant, ce qui est le but : un paramètre qui détruirait silencieusement des données lorsqu'il est décoché serait un mauvais paramètre.
Suppression définitive des données
Deux éléments distincts peuvent être supprimés, et ils sont supprimés de différentes manières.
Liens en attente. Tous les liens non utilisés peuvent être invalidés en une seule fois depuis l'écran des paramètres. Toute personne en cours de processus aura besoin d'un nouveau lien. Cela vide les liens actifs sans toucher aux comptes.
Le tableau lui-même. La désinstallation de Charitable Ambassadors ne supprime pas ce tableau, intentionnellement. Le même précédent s'applique aux jetons d'invitation : une désinstallation est parfois accidentelle, et un plugin qui détruit une table lors de la désactivation ne vous laisse aucune possibilité de retour. Si vous voulez vraiment qu'il disparaisse, un développeur peut le supprimer, ou votre hébergeur peut le faire depuis phpMyAdmin.
Les comptes ne sont pas dans ce tableau. Les comptes de campagne sont des utilisateurs WordPress normaux et résident dans votre table d'utilisateurs comme les autres. La suppression des données de lien de connexion ne supprime le compte de personne ni sa page de campagne.
Exportations, sauvegardes et données personnelles
- Les sauvegardes incluent cette table comme toute autre. Comme elle ne contient que des hachages et des adresses, une sauvegarde ne contient aucun lien de connexion utilisable.
- Une exportation de données personnelles WordPress pour un collecteur de fonds renvoie son compte et ses campagnes normalement. Les liens de connexion sont des enregistrements opérationnels de courte durée plutôt que des données de profil.
- Une suppression de données personnelles supprime le compte via les outils propres à WordPress. Tout lien en attente pour cette adresse cesse de fonctionner, car il ne correspond plus à personne.
Conseils
- Si les inscriptions cessent soudainement de fonctionner sur l'ensemble du site, vérifiez d'abord l'avertissement de table manquante. C'est la seule défaillance qui casse tout à la fois et elle a une solution en un clic.
- Un nombre élevé de liens en attente tôt dans une campagne signifie généralement un problème de délivrabilité, pas de désintérêt.
- Ne copiez pas cette table entre sites. Elle est liée aux sels du site qui l'a créée et ne fonctionnera pas ailleurs.
Référence du développeur
Classe de schéma
Charitable_Ambassadors_Passwordless_Schema
| Membre | Objectif |
|---|---|
table_name() |
Nom de table préfixé |
exists() |
Indique si la table est présente |
is_enabled() |
Indique si la fonctionnalité est activée |
SCHEMA_VERSION |
Version actuelle du schéma, 1.1 |
SCHEMA_VERSION_OPTION |
charitable_ambassadors_passwordless_schema_version |
Clés d'option
| Option | Objectif |
|---|---|
charitable_ambassadors_passwordless_schema_version |
La version du schéma installée |
charitable_ambassadors_passwordless_rewrite_version |
Indique quand les règles de réécriture du point de terminaison ont été enregistrées pour la dernière fois |
Les deux sont supprimés par la routine de désinstallation du plugin. La table ne l'est pas.
Classe Tokens
Charitable_Ambassadors_Passwordless_Tokens
| Méthode | Objectif |
|---|---|
issue( $purpose, $email, $user_id, $campaign_id ) |
Créer un lien |
lookup( $token ) |
Lire une ligne sans la consommer |
redeem( $token ) |
Consommer un lien, de manière atomique |
invalidate_for_email( $email ) |
Annuler tous les liens pour une adresse |
invalidate_for_user( $user_id ) |
Annuler tous les liens pour un compte |
purge_all() |
Annuler tout ce qui est en attente |
effective_ttl( $purpose ) |
Durée de vie en secondes pour ce but |
Filtres
| Filtre | Objectif |
|---|---|
charitable_ambassadors_passwordless_storage_docs_url |
L'URL où se trouve cette page, telle que liée dans le texte d'aide des paramètres et les notifications d'auto-vérification |
charitable_ambassadors_awaiting_mask_email |
Retourner false pour afficher les adresses complètes dans la vue En attente de connexion |





