mirror of
https://github.com/Dvorinka/Devour.git
synced 2026-06-03 20:13:03 +00:00
17 lines
2.3 KiB
JSON
17 lines
2.3 KiB
JSON
{
|
|
"id": "6b7d98ddbd3dcfe6040e6bae",
|
|
"source": "solid:signals",
|
|
"type": "github-document",
|
|
"title": "auth",
|
|
"content": "---\ntitle: Auth\nuse_cases: \u003e-\n user authentication, protected routes, authorization checks, secure data\n access, login systems\ntags:\n - authentication\n - authorization\n - security\n - protected\n - login\n - users\nversion: '1.0'\ndescription: \u003e-\n Implement authentication and protected routes in SolidStart. Secure sensitive\n resources and handle user authorization properly.\n---\n\nServer functions can be used to protect sensitive resources like user data.\n\n```tsx\n\"use server\"\n\nasync function getPrivatePosts() {\n\tconst user = await getUser()\n\tif(!user) {\n\t\treturn null // or throw an error\n\t}\n\n\treturn db.getPosts({ userId: user.id, private: true })\n}\n```\n\nThe `getUser` function can be [implemented using sessions](/solid-start/advanced/session).\n\n## Protected Routes\n\nRoutes can be protected by checking the user or session object during data fetching.\nThis example uses [Solid Router](/solid-router).\n\n```tsx\nconst getPrivatePosts = query(async function() {\n\t\"use server\"\n\tconst user = await getUser()\n\tif(!user) {\n\t\tthrow redirect(\"/login\");\n\t}\n\n\treturn db.getPosts({ userId: user.id, private: true })\n})\n\nexport default function Page() {\n\tconst posts = createAsync(() =\u003e getPrivatePosts(), { deferStream: true });\n}\n```\n\nOnce the user hits this route, the router will attempt to fetch `getPrivatePosts` data.\nIf the user is not signed in, `getPrivatePosts` will throw and the router will redirect to the login page.\n\nTo prevent errors when opening the page directly, set `deferStream: true`.\nThis would ensure `getPrivatePosts` resolves before the page loads since server-side redirects cannot occur after streaming has started.",
|
|
"url": "https://github.com/solidjs/solid-docs/blob/HEAD/src/routes/solid-start/advanced/auth.mdx",
|
|
"metadata": {
|
|
"path": "src/routes/solid-start/advanced/auth.mdx",
|
|
"repo": "solidjs/solid-docs",
|
|
"repo_url": "https://github.com/solidjs/solid-docs.git",
|
|
"size": 1644,
|
|
"source_type": "github"
|
|
},
|
|
"hash": "8fc49a96e28031bf13f061a3145e294b2181b7ee2a4237530cffe139af35a4cc",
|
|
"timestamp": "2026-02-23T11:43:00.193534235+01:00"
|
|
} |