if (KD2\Security_OTP::TOTP('SECRET', 123456)) {
echo "Code bon";
}
Les codes TOTP étant valides 30 secondes, par défaut la fonction TOTP autorise un "drift" (décalage temporel) de plus ou moins un segment de 30 secondes, pour gérer les cas de genre tu viens de lire le code sur ton téléphone, mais il expire 2 secondes plus tard, ben on l'accepte quand même. Donc on accepte par défaut un drift de +/- 1 segment de 30 secondes : on accepte le code des 30 secondes actuelles, le code des 30 secondes précédentes et le code des 30 secondes suivantes. C'est un poil moins sécurisé mais plus simple pour l'utilisateur. Tu peux changer ça avec l'argument drift.
Attention à ce que ta machine soit à l'heure aussi. Le classe contient également une méthode pour demander l'heure à un serveur NTP (utile pour les gens qui s'auto-hébergent et qui ont parfois un serveur pas à l'heure).
Il y a aussi une classe pour générer un QRCode en SVG :
# KD2/Security_OTP
Posté par BohwaZ (site web personnel, Mastodon) . En réponse au message TOTP facile et souverain (sans GAFAM) → quelle lib ?. Évalué à 10.
Hello,
c'est assez simple à coder.
tu peux utiliser cette lib que j'ai codé pour Garradin :
https://fossil.kd2.org/kd2fw/file?name=src/lib/KD2/Security_OTP.php&ci=tip
Générer un code :
Vérifier un code :
Les codes TOTP étant valides 30 secondes, par défaut la fonction TOTP autorise un "drift" (décalage temporel) de plus ou moins un segment de 30 secondes, pour gérer les cas de genre tu viens de lire le code sur ton téléphone, mais il expire 2 secondes plus tard, ben on l'accepte quand même. Donc on accepte par défaut un drift de +/- 1 segment de 30 secondes : on accepte le code des 30 secondes actuelles, le code des 30 secondes précédentes et le code des 30 secondes suivantes. C'est un poil moins sécurisé mais plus simple pour l'utilisateur. Tu peux changer ça avec l'argument drift.
Attention à ce que ta machine soit à l'heure aussi. Le classe contient également une méthode pour demander l'heure à un serveur NTP (utile pour les gens qui s'auto-hébergent et qui ont parfois un serveur pas à l'heure).
Il y a aussi une classe pour générer un QRCode en SVG :
https://fossil.kd2.org/kd2fw/file?name=src/lib/KD2/Graphics/QRCode.php&ci=tip
Ainsi tu peux générer un QR code simplement pour que les gens l'ajoutent au téléphone :
C'est autonome, souverain, et ça marche sur Garradin :)
« Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)