Auth-via-cookies #7

Merged
BothimTV merged 2 commits from auth-via-cookies into main 2026-02-02 19:25:49 +00:00
BothimTV commented 2026-02-02 19:21:25 +00:00 (Migrated from github.com)

Summary by CodeRabbit

  • New Features

    • Implemented secure, cookie-based authentication replacing token storage in browser.
    • Added /auth-me endpoint to verify user authentication status and admin privileges.
    • HttpOnly cookies automatically sent with requests for seamless authentication.
  • Chores

    • Updated backend dependencies and authentication infrastructure to support cookie-based sessions.
    • Removed explicit token management from client storage and API headers.
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Implemented secure, cookie-based authentication replacing token storage in browser. * Added `/auth-me` endpoint to verify user authentication status and admin privileges. * HttpOnly cookies automatically sent with requests for seamless authentication. * **Chores** * Updated backend dependencies and authentication infrastructure to support cookie-based sessions. * Removed explicit token management from client storage and API headers. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
coderabbitai[bot] commented 2026-02-02 19:21:35 +00:00 (Migrated from github.com)
📝 Walkthrough

Walkthrough

This pull request migrates authentication from token-based (localStorage + Authorization headers) to cookie-based (HttpOnly cookies + automatic Axios transmission). Backend endpoints now set secure cookies instead of returning tokens, and frontend components removed explicit Authorization headers to rely on automatic cookie transmission via configured Axios withCredentials.

Changes

Cohort / File(s) Summary
Backend Dependencies & Initialization
backend/package.json, backend/src/index.ts, docker-compose.yml
Added @fastify/cookie dependency and registered Fastify cookie plugin with COOKIE_SECRET environment variable configuration.
Backend Authentication Routes
backend/src/routes/auth/PATCH.ts, backend/src/routes/passkeys/PATCH.ts
Updated login endpoints to set secure HttpOnly cookies (session_token, is_admin) with 30-day max age and SameSite: Strict instead of returning sessionToken in response body.
Backend Auth Validation
backend/src/routes/auth-me/GET.ts, backend/src/types/Route.ts
Introduced new /auth-me endpoint for client authentication status queries; updated Route base class to extract and validate session_token from req.cookies instead of Authorization header.
Frontend Axios Configuration
frontend/src/plugins/axios.ts, frontend/src/plugins/index.ts
Configured global axios.defaults.withCredentials = true; registered axios plugin during app initialization to ensure credentials sent with all requests.
Frontend Authentication Flows
frontend/src/layouts/default.vue, frontend/src/pages/index.vue, frontend/src/pages/login.vue, frontend/src/pages/checkin.vue, frontend/src/pages/spiel.vue
Replaced localStorage session token checks and admin flags with API calls to /auth-me; simplified login flow to remove localStorage writes; added reactive admin state fetched from backend.
Frontend API Requests
frontend/src/components/SchuelerSelect.vue, frontend/src/pages/verwaltung/mail.vue, frontend/src/pages/verwaltung/passkeys.vue, frontend/src/pages/verwaltung/schueler.vue, frontend/src/pages/verwaltung/sessions.vue, frontend/src/pages/verwaltung/statistik.vue
Removed Authorization headers from all API requests across components and pages; requests now rely on cookies sent automatically by Axios.
Frontend Utilities & Documentation
frontend/src/util/cookies.ts, .github/copilot-instructions.md
Added getCookie utility for client-side cookie reading; updated AI documentation to describe cookie-based authentication replacing Bearer token guidance.

Sequence Diagram

sequenceDiagram
    participant Client as Client<br/>(Browser)
    participant Axios as Axios<br/>(withCredentials)
    participant Backend as Backend<br/>(Fastify)
    participant DB as Database

    Note over Client,DB: Old Flow: Token-Based
    Client->>Client: Read session_token<br/>from localStorage
    Client->>Axios: Request + Authorization<br/>header with token
    Axios->>Backend: HTTP request

    Note over Client,DB: New Flow: Cookie-Based
    Client->>Axios: Request (no explicit<br/>Authorization header)
    Note over Axios: withCredentials: true<br/>sends cookies automatically
    Axios->>Backend: HTTP request<br/>+ session_token cookie
    Backend->>Backend: Validate session_token<br/>from req.cookies
    Backend->>DB: Query session by<br/>sessionToken
    DB-->>Backend: Session record
    Backend-->>Axios: Response<br/>(ok, authenticated,<br/>isAdmin)
    Axios-->>Client: Response data

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Poem

🐰 Tokens once lived in localStorage's keep,
Now cookies float softly through browsers so deep!
Axios delivers them swift, without a care,
HttpOnly and secure, a trust-worthy pair! 🍪
No headers to craft—just let cookies be free,
Authentication flows wild as can be! 🎉


Note

🎁 Summarized by CodeRabbit Free

Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login.

Comment @coderabbitai help to get the list of available commands and usage tips.

<!-- This is an auto-generated comment: summarize by coderabbit.ai --> <!-- walkthrough_start --> <details> <summary>📝 Walkthrough</summary> ## Walkthrough This pull request migrates authentication from token-based (localStorage + Authorization headers) to cookie-based (HttpOnly cookies + automatic Axios transmission). Backend endpoints now set secure cookies instead of returning tokens, and frontend components removed explicit Authorization headers to rely on automatic cookie transmission via configured Axios withCredentials. ## Changes |Cohort / File(s)|Summary| |---|---| |**Backend Dependencies & Initialization** <br> `backend/package.json`, `backend/src/index.ts`, `docker-compose.yml`|Added `@fastify/cookie` dependency and registered Fastify cookie plugin with COOKIE_SECRET environment variable configuration.| |**Backend Authentication Routes** <br> `backend/src/routes/auth/PATCH.ts`, `backend/src/routes/passkeys/PATCH.ts`|Updated login endpoints to set secure HttpOnly cookies (session_token, is_admin) with 30-day max age and SameSite: Strict instead of returning sessionToken in response body.| |**Backend Auth Validation** <br> `backend/src/routes/auth-me/GET.ts`, `backend/src/types/Route.ts`|Introduced new /auth-me endpoint for client authentication status queries; updated Route base class to extract and validate session_token from req.cookies instead of Authorization header.| |**Frontend Axios Configuration** <br> `frontend/src/plugins/axios.ts`, `frontend/src/plugins/index.ts`|Configured global axios.defaults.withCredentials = true; registered axios plugin during app initialization to ensure credentials sent with all requests.| |**Frontend Authentication Flows** <br> `frontend/src/layouts/default.vue`, `frontend/src/pages/index.vue`, `frontend/src/pages/login.vue`, `frontend/src/pages/checkin.vue`, `frontend/src/pages/spiel.vue`|Replaced localStorage session token checks and admin flags with API calls to /auth-me; simplified login flow to remove localStorage writes; added reactive admin state fetched from backend.| |**Frontend API Requests** <br> `frontend/src/components/SchuelerSelect.vue`, `frontend/src/pages/verwaltung/mail.vue`, `frontend/src/pages/verwaltung/passkeys.vue`, `frontend/src/pages/verwaltung/schueler.vue`, `frontend/src/pages/verwaltung/sessions.vue`, `frontend/src/pages/verwaltung/statistik.vue`|Removed Authorization headers from all API requests across components and pages; requests now rely on cookies sent automatically by Axios.| |**Frontend Utilities & Documentation** <br> `frontend/src/util/cookies.ts`, `.github/copilot-instructions.md`|Added getCookie utility for client-side cookie reading; updated AI documentation to describe cookie-based authentication replacing Bearer token guidance.| ## Sequence Diagram ```mermaid sequenceDiagram participant Client as Client<br/>(Browser) participant Axios as Axios<br/>(withCredentials) participant Backend as Backend<br/>(Fastify) participant DB as Database Note over Client,DB: Old Flow: Token-Based Client->>Client: Read session_token<br/>from localStorage Client->>Axios: Request + Authorization<br/>header with token Axios->>Backend: HTTP request Note over Client,DB: New Flow: Cookie-Based Client->>Axios: Request (no explicit<br/>Authorization header) Note over Axios: withCredentials: true<br/>sends cookies automatically Axios->>Backend: HTTP request<br/>+ session_token cookie Backend->>Backend: Validate session_token<br/>from req.cookies Backend->>DB: Query session by<br/>sessionToken DB-->>Backend: Session record Backend-->>Axios: Response<br/>(ok, authenticated,<br/>isAdmin) Axios-->>Client: Response data ``` ## Estimated code review effort 🎯 4 (Complex) | ⏱️ ~45 minutes ## Poem > 🐰 Tokens once lived in localStorage's keep, > Now cookies float softly through browsers so deep! > Axios delivers them swift, without a care, > HttpOnly and secure, a trust-worthy pair! 🍪 > No headers to craft—just let cookies be free, > Authentication flows wild as can be! 🎉 </details> <!-- walkthrough_end --> <!-- tips_start --> --- > [!NOTE] > <details> > <summary>🎁 Summarized by CodeRabbit Free</summary> > > Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting <https://app.coderabbit.ai/login>. > > </details> <sub>Comment `@coderabbitai help` to get the list of available commands and usage tips.</sub> <!-- tips_end --> <!-- internal state start --> <!-- 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 --> <!-- internal state end -->
socket-security[bot] commented 2026-02-02 19:21:58 +00:00 (Migrated from github.com)

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Added@​fastify/​cookie@​11.0.210010010086100

View full report

**Review the following changes in direct dependencies.** Learn more about [Socket for GitHub](https://socket.dev?utm_medium=gh). <table> <thead> <tr> <th>Diff</th> <th width="200px">Package</th> <th align="center" width="100px">Supply Chain<br/>Security</th> <th align="center" width="100px">Vulnerability</th> <th align="center" width="100px">Quality</th> <th align="center" width="100px">Maintenance</th> <th align="center" width="100px">License</th> </tr> </thead> <tbody> <tr><td align="center"><a href="https://socket.dev/dashboard/org/BothimTV/diff-scan/4a7da38f-0c6b-4912-8810-f9ae0e00d7ba?tab=dependencies&dependency_item_key=15930206995"><img src="https://github-app-statics.socket.dev/diff-added.svg" title="Added" alt="Added" width="20" height="20"></a></td><td><a href="https://socket.dev/dashboard/org/BothimTV/diff-scan/4a7da38f-0c6b-4912-8810-f9ae0e00d7ba?tab=dependencies&dependency_item_key=15930206995">@​fastify/​cookie@​11.0.2</a></td><td align="center"><a href="https://socket.dev/dashboard/org/BothimTV/diff-scan/4a7da38f-0c6b-4912-8810-f9ae0e00d7ba?tab=dependencies&dependency_item_key=15930206995"><img src="https://github-app-statics.socket.dev/score-100.svg" title="Supply Chain Security" width="40" height="40" alt="100"></a></td><td align="center"><a href="https://socket.dev/dashboard/org/BothimTV/diff-scan/4a7da38f-0c6b-4912-8810-f9ae0e00d7ba?tab=dependencies&dependency_item_key=15930206995"><img src="https://github-app-statics.socket.dev/score-100.svg" title="Vulnerability" width="40" height="40" alt="100"></a></td><td align="center"><a href="https://socket.dev/dashboard/org/BothimTV/diff-scan/4a7da38f-0c6b-4912-8810-f9ae0e00d7ba?tab=dependencies&dependency_item_key=15930206995"><img src="https://github-app-statics.socket.dev/score-100.svg" title="Quality" width="40" height="40" alt="100"></a></td><td align="center"><a href="https://socket.dev/dashboard/org/BothimTV/diff-scan/4a7da38f-0c6b-4912-8810-f9ae0e00d7ba?tab=dependencies&dependency_item_key=15930206995"><img src="https://github-app-statics.socket.dev/score-86.svg" title="Maintenance" width="40" height="40" alt="86"></a></td><td align="center"><a href="https://socket.dev/dashboard/org/BothimTV/diff-scan/4a7da38f-0c6b-4912-8810-f9ae0e00d7ba?tab=dependencies&dependency_item_key=15930206995"><img src="https://github-app-statics.socket.dev/score-100.svg" title="License" width="40" height="40" alt="100"></a></td></tr> </tbody> </table> [View full report](https://socket.dev/dashboard/org/BothimTV/diff-scan/4a7da38f-0c6b-4912-8810-f9ae0e00d7ba?tab=dependencies) <!-- overview-comment -->
socket-security[bot] commented 2026-02-02 19:22:00 +00:00 (Migrated from github.com)

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn Low
Publisher changed: npm @fastify/cookie is now published by fdawgs instead of gurgunday

New Author: fdawgs

Previous Author: gurgunday

From: backend/package.jsonnpm/@fastify/cookie@11.0.2

ℹ Read more on: This package | This alert | What is new author?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Scrutinize new collaborator additions to packages because they now have the ability to publish code into your dependency tree. Packages should avoid frequent or unnecessary additions or changes to publishing rights.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@fastify/cookie@11.0.2. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

> [!WARNING] > **Review the following alerts detected in dependencies.** > > According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about [Socket for GitHub](https://socket.dev?utm_medium=gh). <table> <thead> <tr> <th>Action</th> <th>Severity</th> <th width="800px" align="left">Alert &emsp;(click "▶" to expand/collapse)</th> </tr> </thead> <tbody> <tr> <td valign="top">Warn</td> <td align="center" valign="top"><a href="https://socket.dev/dashboard/org/BothimTV/diff-scan/4a7da38f-0c6b-4912-8810-f9ae0e00d7ba?tab=alerts&alert_item_key=QXwdKmYd5yuyruiwOnyYgES35XQn6fAVvO2wYsxxgYDQ"><img src="https://github-app-statics.socket.dev/severity-0.svg" title="Low" width="20" height="20" alt="Low"></a></td> <td><details open><summary><strong>Publisher changed</strong>: npm <code>@fastify/cookie</code> is now published by fdawgs instead of gurgunday</summary> <p></p> <p><strong>New Author:</strong> <a href="https://socket.dev/npm/user/fdawgs">fdawgs</a></p> <p><strong>Previous Author:</strong> <a href="https://socket.dev/npm/user/gurgunday">gurgunday</a></p> <p><strong>From:</strong> <a href="https://github.com/BothimTV/punktesystem/pull/7/files#diff-495707834ca4b862f9acdfbac70d279023d2c059da13db59594e61ed3354fed5">backend/package.json</a> → <code>npm/@fastify/cookie@11.0.2</code></p> <p>ℹ Read more on: <a href="https://socket.dev/npm/package/@fastify/cookie/overview/11.0.2">This package</a> | <a href="https://socket.dev/dashboard/org/BothimTV/diff-scan/4a7da38f-0c6b-4912-8810-f9ae0e00d7ba?tab=alerts&alert_item_key=QXwdKmYd5yuyruiwOnyYgES35XQn6fAVvO2wYsxxgYDQ">This alert</a> | <a href="https://socket.dev/alerts/newAuthor">What is new author?</a></p> <blockquote> <p><em>Next steps:</em> Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at <code>support@socket.dev</code>. </p> <p><em>Suggestion:</em> Scrutinize new collaborator additions to packages because they now have the ability to publish code into your dependency tree. Packages should avoid frequent or unnecessary additions or changes to publishing rights.</p> <p> <em>Mark the package as acceptable risk</em>. To ignore this alert only in this pull request, reply with the comment <code>@SocketSecurity ignore npm/@fastify/cookie@11.0.2</code>. You can also ignore all packages with <code>@SocketSecurity ignore-all</code>. To ignore an alert for all future pull requests, use Socket's Dashboard to change the <a href="https://socket.dev/dashboard/org/BothimTV/diff-scan/4a7da38f-0c6b-4912-8810-f9ae0e00d7ba?tab=alerts&alert_item_key=QXwdKmYd5yuyruiwOnyYgES35XQn6fAVvO2wYsxxgYDQ">triage state of this alert</a>. </p> </blockquote> </details></td> </tr> </tbody> </table> [View full report](https://socket.dev/dashboard/org/BothimTV/diff-scan/4a7da38f-0c6b-4912-8810-f9ae0e00d7ba?tab=alerts&action=error%2Cwarn)
Commenting is not possible because the repository is archived.
No description provided.