magic-link-auth-companion
SKILL.md
Magic Link Auth Companion
Quand utiliser ce skill
- Modifications de
services/magic_link_service.py - API
/api/auth/magic-link - UI
login.html,dashboard.html,static/dashboard.js - Stockage Redis ou backend externe (
config_api.php)
Pré-requis
- ENV obligatoires :
FLASK_SECRET_KEY. - ENV recommandées :
MAGIC_LINK_TTL_SECONDSpour piloter la durée de vie;MAGIC_LINK_TOKENS_FILEreste optionnelle carconfig/settings.pyfournit un fallback par défaut. - ENV optionnelles (mode backend externe) :
EXTERNAL_CONFIG_BASE_URL,CONFIG_API_TOKEN. - Virtualenv
/mnt/venv_ext4/venv_render_signal_serverpour les scripts. - Accès Redis ou backend externe fonctionnel.
Workflow
- Sécurité & ENV
- Vérifier les ENV ci-dessus.
- Interdire toute journalisation des tokens (utiliser
mask_sensitive_data).
- Service Python
- Garder le pattern singleton +
RLock. - Assurer la signature HMAC SHA-256, TTL configurable (
MAGIC_LINK_TTL_SECONDS). - Pour les liens illimités (
unlimited=Truecôté API/UI), exiger révocation explicite.
- Garder le pattern singleton +
- Stockage
- Redis-first : via
app_config_store. - Backend externe : endpoints
GET/POST magic_link_tokens(PHP). Toujours vérifier les codes de retour et valider le JSON.
- Redis-first : via
- Routes & UI
- API : réponses JSON
{success, magic_link, expires_at, unlimited}. - UI : respecter les toasts (
MessageHelper),showCopiedFeedback, états disabled pendant l'appel. - Ajouter les boutons/options (illimité, TTL custom éventuel) dans des panneaux accessibles, sans casser le flux actuel
generateMagicLink()destatic/dashboard.js.
- API : réponses JSON
- Tests
pytest tests/test_services.py -k magic_linkpour couvrir le service actuel.- Compléter
tests/test_api_auth.pyou ajouter un fichier dédié si la surface API/api/auth/magic-links'élargit. - QA manuelle : génération one-shot, permanent, révocation.
- Documentation & Memory Bank
- Mettre à jour
docs/access/authentication.md(section Magic Links) ou section correspondante. - Consigner toute nouvelle option de sécurité dans la Memory Bank.
- Mettre à jour
- Revocation (urgence)
- Utiliser le helper
python ./.agents/skills/magic-link-auth-companion/revoke_magic_links.py --alloupython ./.agents/skills/magic-link-auth-companion/revoke_magic_links.py --token <uuid>pour révoquer en masse ou individuellement.
- Utiliser le helper
Ressources
revoke_magic_links.py: script CLI pour révoquer tous les tokens (--all) ou un token spécifique (--token <uuid>).
Conseils
- Utiliser des UUID v4 pour les tokens et vérifier les collisions.
- Nettoyer les tokens expirés régulièrement (ex: au démarrage et après chaque génération).
- Lors d'une compromission, fournir un script de révocation de masse (via
set_config_json).
Weekly Installs
3
Repository
ki2pixel/render…l_serverFirst Seen
Feb 28, 2026
Security Audits
Installed on
mcpjam3
command-code3
claude-code3
junie3
windsurf3
zencoder3