Authentication

Updated Sep 18, 2026

Authentication is the process a system uses to verify the identity of a user, service, or device before creating a trusted session. In a vibe-coded product audit, it covers how credentials are accepted, how identities are confirmed, how sessions begin, and how failed or suspicious attempts are handled.

Authentication establishes who is interacting with a system. It begins before a login request reaches application logic and continues through credential checks, session creation, renewal, recovery, and sign-out. A working login screen proves only that one path completes. It does not show whether every identity path applies the same rules.

Where authentication appears

Authentication is rarely contained in one function. A web product may combine a password form, a social identity provider, email links, API keys, and service-to-service credentials. Each path creates or accepts evidence of identity. The system then translates that evidence into a session or token used by later requests.

An audit of vibe-coded software maps those paths before judging their implementation. Generated features can add a second login mechanism without reusing the checks applied to the first. The visible result still works, while recovery, token expiry, or administrative access follows a separate set of assumptions.

Authentication pathEvidence to inspectTypical boundary
Password loginHashing, rate limits, error responsesCredential check
Identity providerCallback validation, account linkingExternal identity
Password resetToken lifetime, reuse, account changeRecovery flow
API accessKey storage, rotation, revocationMachine identity

Authentication and authorization are different

Authentication answers who the actor is. Authorization decides what that actor may do. Combining the two creates gaps: a route may correctly require a logged-in user but never verify whether that user owns the requested record. An audit traces both decisions independently for every sensitive action.

The review follows identity state through the complete request lifecycle:

  • Entry: Identify every way a person or service can present credentials.
  • Verification: Check where credentials, provider responses, or signed tokens are validated.
  • Session: Trace how trusted state is created, stored, renewed, and ended.
  • Recovery: Review reset and account-linking paths as authentication paths in their own right.
  • Failure: Confirm that rejected attempts do not reveal account details or leave partial state behind.

What an audit checks

The audit compares each path against the same identity rules. It checks whether security-sensitive values come from controlled secrets management, whether expiry is enforced by the server, and whether a revoked credential stops working everywhere it is accepted. It also reads tests to see whether they cover rejection and recovery rather than only successful login.

This is where shipping discipline matters. Authentication code can look complete because the main screen works, even when an alternate callback or stale session bypasses the intended boundary. The useful output is a map of identity paths, the rule each path enforces, and any path that establishes trust differently from the rest.

Evidence after repair

A repaired flow needs evidence at the boundary, not only a manual login. Tests should show that invalid credentials stay invalid, expired state is rejected, recovery tokens cannot be reused, and authentication does not silently grant broader access. Logs should record security-relevant events without storing credentials or tokens. Together, those checks make identity behaviour inspectable after the audit ends.