Pilcrow has released a personal handbook on authentication that serves as a free collection of guides, recommendations, and code examples for implementing secure authentication in web applications.
The book focuses primarily on authentication and authorization systems for web apps and directs readers to the OWASP Cheat Sheets series for broader security topics. It is available without cost or advertising and includes both JavaScript and Go examples hosted on GitHub.
Authentication Methods
The simplest approach uses a username and password, yet the text details multiple risks including weak or reused passwords, phishing, and database compromise. Email addresses are presented as globally unique identifiers that also enable password recovery through time-limited links or codes.
For stronger protection, the guide covers two-factor and multi-factor authentication using SMS codes or authenticator apps. It notes that these methods should be viewed as rate-limiting mechanisms rather than absolute security and advises against reusing email verification as a second factor when it is also used for password resets.
Passwordless options receive detailed treatment, including one-time codes or magic links sent via email. Passkeys based on public-key cryptography are highlighted for resistance to brute-force attacks and phishing while offering convenience through device biometrics or a master password. External hardware tokens such as YubiKey devices are discussed for both passkey support and corporate second-factor use.
The author recommends supporting both email-based and passkey authentication so users can select their preferred method, with passkeys enforced for high-security accounts.
Session Management
Because HTTP is stateless, the book explains the necessity of server-side session records paired with client tokens. Session secrets must be generated from cryptographically secure random sources, hashed with SHA-256, and combined with an identifier into a single token using encodings such as hex or base64url.
Recommended practices include setting reasonable expiration times, optionally binding sessions to geographic regions derived from IP addresses, and invalidating sessions on logout or password change. The guide stresses that session invalidation is a privileged operation and that operation-specific sessions should be used for sensitive actions such as password updates or passkey registration.
Email Addresses and Final Advice
Email addresses are endorsed as reliable account identifiers because of their uniqueness and familiarity, provided domain validation is performed. The book concludes that authentication method selection must balance security requirements, user behavior, and platform expectations, favoring stronger methods implemented from the start rather than relying on post-login detection.


