{message}
+{details}
+ {stack && ( +
+ {stack}
+
+ )}
+ {details}
+ {stack && ( +
+ {stack}
+
+ )}
+ Learn about different beer styles.
+Explore our collection of beers.
+Discover our partner breweries.
++ Your email address has been successfully verified. +
++ {new Date(loaderData.confirmedDate).toLocaleString()} +
++ The confirmation link may have expired (valid for 30 minutes) or already + been used. +
++ You are successfully authenticated. This is a protected page that requires a + valid session. +
+ ++ Session Info +
++ This demo showcases the following authentication features: +
+Login
+
+ POST to /api/auth/login with
+ username & password
+
Register
+
+ POST to /api/auth/register with
+ full user details
+
Session
++ JWT access & refresh tokens stored in an HTTP-only cookie +
+Protected Routes
+
+ This dashboard requires authentication via{' '}
+ requireAuth()
+
Token Refresh
+
+ POST to /api/auth/refresh with
+ refresh token
+
Authentication Demo
+ + {username ? ( + <> ++ Welcome back, {username} + ! +
+Sign in to your Biergarten account
+Create your Biergarten account
++ Four themes, four moods — from the sun-bleached clarity of a Weizen afternoon + to the deep berry dark of a Cassis barrel. Every theme shares the same semantic + token structure so components stay consistent while the atmosphere shifts + completely. +
+Pick a theme and preview it immediately.
+ ++ {label} +
++ Secondary copy, placeholders, and helper text. +
+{vibe}
++ Core +
++ Status +
++ Content +
++ Use these actions to preview toast styles. +
+