Skip to content

Work / Learning Platform / Wiki / Surfaces

login

Surfacecanonicalverified 2026-10-04

SURFACE.WEB.AUTH.LOGIN

Summary

Sign-in with email and password, GitHub or Google.

Raw wireframe

  • .context/designs/web/auth/login.html
  • .context/designs/web/auth/login-error.html

Why it is drawn this way

All three ways in are drawn, and the default build shows one. auth-providers.ts reads NEXT_PUBLIC_AUTH_PROVIDERS and falls back to google alone. With the default, the email form and the divider are not rendered. See auth-providers.

A wrong password is reported under Email. The server says "Invalid email or password. Please try again." login-form.tsx puts any message containing email or user under the email field. The same text shows as a toast.

Success goes to My Courses. router.push(redirect || "/my-courses"). A visitor sent here by Enroll Now returns to the course through ?redirect=.

The OAuth buttons are buttons. They open a popup; see oauth-callback.

"Email is required" cannot be reached. Both inputs are required, so the browser blocks an empty submit first.

The benefits panel promises certificates. benefits.ts says "Earn certificates upon completion". Nothing in the schema or the app issues one. It is drawn because it ships; see tasks.md T003.

Related

Sources

  • apps/website/src/app/auth/login/page.tsx
  • apps/website/src/app/auth/layout.tsx
  • apps/website/src/app/auth/benefits.ts
  • packages/ui/src/components/auth/login-form.tsx
  • packages/ui/src/components/auth/auth-layout.tsx
  • packages/ui/src/hooks/use-auth.ts