Changes for version 0.06 - 2026-08-30
- The default challenge form carries $c->csrf_field when the application enabled `csrf`, decided at to_app (on_compile) so declaration order does not matter; on Punk < 0.31 the key is read at registration instead
- The default challenge page is sent Cache-Control: no-store
Modules
a second factor for Punk applications
HOTP and TOTP one-time passwords
Examples
- example/demo.psgi
- example/plugin-demo/README.md
- example/plugin-demo/app.psgi
- example/plugin-demo/config/punk.yml
- example/plugin-demo/lib/TOTPDemo.pm
- example/plugin-demo/lib/TOTPDemo/Backend/Memory.pm
- example/plugin-demo/lib/TOTPDemo/Controller/Web/Account.pm
- example/plugin-demo/lib/TOTPDemo/Controller/Web/Auth.pm
- example/plugin-demo/lib/TOTPDemo/Controller/Web/Vault.pm
- example/plugin-demo/lib/TOTPDemo/Model/Token.pm
- example/plugin-demo/lib/TOTPDemo/Model/User.pm
- example/plugin-demo/root/static/style.css
- example/plugin-demo/root/templates/challenge.tmpl
- example/plugin-demo/root/templates/enrol.tmpl
- example/plugin-demo/root/templates/home.tmpl
- example/plugin-demo/root/templates/layout.tmpl
- example/plugin-demo/root/templates/login.tmpl
- example/plugin-demo/root/templates/vault.tmpl
- example/plugin-demo/t/01-basic.t