{"result":{"depiction_url":null,"edges":{"hasreference":{"objects":[{"created":"2026-10-07T11:13:41Z","object_id":{"id":1577,"is_a":["text","documentation","cookbook"],"name":"doc_cookbook_overriding","title":{"_type":"trans","tr":{"en":"Override a module template"}},"uri":"https:\/\/zotonic.com\/id\/1577"},"seq":1},{"created":"2026-10-07T11:13:41Z","object_id":{"id":2045,"is_a":["text","documentation","userguide"],"name":"doc_userguide_user_management","title":{"_type":"trans","tr":{"en":"Creating a user"}},"uri":"https:\/\/zotonic.com\/id\/2045"},"seq":2}],"predicate":{"id":2774,"is_a":["meta","predicate"],"name":"hasreference","title":{"_type":"trans","tr":{"en":"Documentation reference"}},"uri":"https:\/\/zotonic.com\/id\/hasreference"}},"references":{"objects":[{"created":"2020-05-30T05:47:58Z","object_id":{"id":2010,"is_a":["text","documentation","reference","module"],"name":"doc_module_mod_signup","title":"mod_signup","uri":"https:\/\/zotonic.com\/id\/2010"},"seq":1000000},{"created":"2020-05-30T05:47:58Z","object_id":{"id":1306,"is_a":["text","documentation","reference","module"],"name":"doc_module_mod_authentication","title":"mod_authentication","uri":"https:\/\/zotonic.com\/id\/1306"},"seq":1000000}],"predicate":{"id":332,"is_a":["meta","predicate"],"name":"references","title":{"_type":"trans","tr":{"en":"References"}},"uri":"https:\/\/zotonic.com\/id\/references"}},"refers":{"objects":[{"created":"2026-10-07T11:13:02Z","object_id":{"id":1306,"is_a":["text","documentation","reference","module"],"name":"doc_module_mod_authentication","title":"mod_authentication","uri":"https:\/\/zotonic.com\/id\/1306"},"seq":1000000},{"created":"2026-10-07T11:13:02Z","object_id":{"id":2010,"is_a":["text","documentation","reference","module"],"name":"doc_module_mod_signup","title":"mod_signup","uri":"https:\/\/zotonic.com\/id\/2010"},"seq":1000000}],"predicate":{"id":2409,"is_a":["meta","predicate"],"name":"refers","title":{"_type":"trans","tr":{"en":"Refers"}},"uri":"https:\/\/zotonic.com\/id\/refers"}},"subject":{"objects":[{"created":"2026-10-07T11:13:41Z","object_id":{"id":2557,"is_a":["categorization","keyword","keyword_information_type"],"name":"zotonic_topic_cookbook_recipe","title":"Cookbook recipe","uri":"https:\/\/zotonic.com\/id\/2557"},"seq":1},{"created":"2026-10-07T11:13:41Z","object_id":{"id":2563,"is_a":["categorization","keyword","keyword_audience"],"name":"zotonic_topic_frontend_developer","title":"Frontend developer","uri":"https:\/\/zotonic.com\/id\/2563"},"seq":2},{"created":"2026-10-07T11:13:41Z","object_id":{"id":2590,"is_a":["categorization","keyword","keyword_domain"],"name":"zotonic_topic_authentication","title":"Authentication","uri":"https:\/\/zotonic.com\/id\/2590"},"seq":3},{"created":"2026-10-07T11:13:41Z","object_id":{"id":2589,"is_a":["categorization","keyword","keyword_domain"],"name":"zotonic_topic_identity_and_accounts","title":"Identity and accounts","uri":"https:\/\/zotonic.com\/id\/2589"},"seq":4},{"created":"2026-10-07T11:13:41Z","object_id":{"id":2582,"is_a":["categorization","keyword","keyword_domain"],"name":"zotonic_topic_forms","title":"Forms","uri":"https:\/\/zotonic.com\/id\/2582"},"seq":5}],"predicate":{"id":308,"is_a":["meta","predicate"],"name":"subject","title":{"_type":"trans","tr":{"en":"Keyword"}},"uri":"http:\/\/purl.org\/dc\/elements\/1.1\/subject"}}},"id":1589,"is_a":["text","documentation","cookbook"],"links":[{"rel":"self","target":"https:\/\/zotonic.com\/.zotonic\/websub\/topic\/1589"},{"rel":"hub","target":"https:\/\/zotonic.com\/.zotonic\/websub"}],"medium":null,"medium_url":null,"name":"doc_cookbook_frontend_signup_logon_form","page_url":{"en":"https:\/\/zotonic.com\/cookbook\/1589\/customize-login-and-signup-presentation","x-default":"https:\/\/zotonic.com\/cookbook\/1589\/customize-login-and-signup-presentation"},"preview_url":null,"resource":{"version":38,"pivot_location_lat":null,"title":{"_type":"trans","tr":{"en":"Customize login and signup presentation"}},"is_authoritative":true,"body":{"_type":"trans","tr":{"en":"<p>Start with <a href=\"\/id\/1306\" class=\"doc-reference doc-reference-module\"><code>module#mod_authentication<\/code><\/a>; enable <a href=\"\/id\/2010\" class=\"doc-reference doc-reference-module\"><code>module#mod_signup<\/code><\/a> only if public registration is intended. Confirm the unmodified login, logout, password-reset and signup flows work before changing templates.<\/p>\n<ol><li>Inspect <code>logon.tpl<\/code> in <code>zotonic_mod_authentication<\/code> and <code>signup.tpl<\/code> in <code>zotonic_mod_signup<\/code> for the current include chain.<\/li><li>Override the smallest presentation template in the site&#39;s <code>priv\/templates<\/code>, using the same filename. Preserve the supplied form actions, field names, validation, scripts and configuration includes.<\/li><li>Match the site&#39;s layout and labels. Avoid copying the entire authentication implementation into a custom form.<\/li><li>Test valid and invalid passwords, reset links, verification-required signup, rate limits, and any enabled external identity provider.<\/li><\/ol>\n<p>Do not replace the configured password policy with a hard-coded length, or silently submit a hidden “terms accepted” value. If the site requires acceptance, present the terms and record the visitor&#39;s explicit choice using the signup flow.<\/p>\n<p>The old standalone form markup predates the current authentication implementation. Use the installed templates as the source of truth when upgrading.<\/p>"}},"is_mailing_opt_out":false,"slug":"customize-login-and-signup-presentation","is_protected":false,"visible_for":0,"tz":"UTC","language":["en"],"is_featured":false,"content_group_id":{"id":339,"is_a":["meta","content_group"],"name":"default_content_group","title":{"_type":"trans","tr":{"en":"Default Content Group"}},"uri":"https:\/\/zotonic.com\/id\/default_content_group"},"category_id":{"id":318,"is_a":["meta","category"],"name":"cookbook","title":{"_type":"trans","tr":{"en":"Cookbook"}},"uri":"https:\/\/test.zotonic.com\/id\/318"},"publication_start":"2022-02-15T10:01:00Z","is_website_redirect":false,"github_url":"https:\/\/github.com\/zotonic\/zotonic\/tree\/master\/doc\/cookbook\/frontend-signup-logon-form.rst","pivot_location_lng":null,"name":"doc_cookbook_frontend_signup_logon_form","is_unfindable":false,"is_published":true,"doc_editorial_edges":{"hasreference":[1577,2045],"subject":[2557,2563,2582,2589,2590]},"summary":{"_type":"trans","tr":{"en":"Reuse the maintained authentication flow and override its presentation."}},"pivot_geocode":null,"custom_slug":false,"created":"2020-05-30T05:47:27Z","uri":null,"date_is_all_day":false,"is_dependent":false,"is_page_path_multiple":false,"translation_status":{"en":""},"publication_end":"9999-08-17T12:00:00Z","modifier_id":{"id":1,"is_a":["person"],"name":"administrator","title":"Site Administrator","uri":"https:\/\/zotonic.com\/id\/1"},"privacy":0,"doc_editorial_bundle":true,"creator_id":{"id":336,"is_a":["person","robot"],"name":"gitbot","title":"Git","uri":"https:\/\/zotonic.com\/id\/336"},"seo_noindex":false,"modified":"2026-10-07T11:13:51Z","title_slug":{"_type":"trans","tr":{"en":"customize-login-and-signup-presentation"}}},"uri":"https:\/\/zotonic.com\/id\/1589","uri_template":"https:\/\/zotonic.com\/id\/:id","websub":{"hub":"https:\/\/zotonic.com\/.zotonic\/websub","topic":"https:\/\/zotonic.com\/.zotonic\/websub\/topic\/1589"}},"status":"ok"}