---
title: "Private Seite(n)"
description: "Wie erstellt man mit LaunchFa.st Seiten, die nur für angemeldete Nutzer sichtbar sind?"
source: "https://www.launchfa.st/de/documentation/tutorials/private-page"
---

> **Site index for agents**
> Fetch https://www.launchfa.st/llms.txt to discover every page on this site.
> Every page is also available as Markdown by appending `.md` to its URL.

import { Tabs, TabItem } from '@astrojs/starlight/components'

Sobald der [Nutzer authentifiziert ist](/documentation/authentication), können Sie private Routen wie ein Nutzer-Dashboard, ein Konto usw. bauen.

:::tip
Wenn Sie geschützte API-Aufrufe machen möchten, folgen Sie [dieser Anleitung](/documentation/tutorials/api-call#protected-api-routes).
:::

<Tabs>

<TabItem label="Astro">

Hier ist ein Beispiel für ein einfaches Nutzer-Dashboard, das private Nutzerdaten auf der Seite anzeigt:

```astro
---
import { getSession } from '@/lib/auth'

const session = getSession(Astro.request)

if (session) {
  // If need to do something on the server side say fetch data for the user
  // This is the right block to do it
} else {
  // In case the user is not logged in
  // Redirect them for example
  return Astro.redirect('/')
}
---

<html>
  <head> </head>
  <body>
    The user that's logged name is {session.user.name}
  </body>
</html>
```

</TabItem>

<TabItem label="SvelteKit">

Hier ist ein einfaches Beispiel für den Schutz einer Route in SvelteKit.

Erstellen Sie eine `+page.server.ts` in bzw. neben dem Verzeichnis, das Sie schützen möchten:

```typescript
// File: src/routes/something/+page.server.ts

import { error } from '@sveltejs/kit'
import type { RequestEvent } from './$types'
import { getSession } from '@/lib/utils/auth'

export async function load(event: RequestEvent) {
  const session = getSession(event.request)
  if (!session) {
    // In case the user is not logged in
    // Send 403
    throw error(403, { message: 'Unauthorized' })
  }
  // If need to do something on the server side say fetch data for the user
  // This is the right block to do it
  return session
}
```

</TabItem>

</Tabs>

<div style="height: 1px; background: #C1C1C150; width: 100%;" />
