Auth
编辑此页面服务端函数可用于保护用户数据等敏感资源。
"use server"
async function getPrivatePosts() { const user = await getUser() if(!user) { return null // or throw an error }
return db.getPosts({ userId: user.id, private: true })}getUser 函数可以使用会话实现
受保护的路由
通过在数据获取期间检查用户或会话对象保护路由。此示例使用 Solid-Router。
const getPrivatePosts = query(async function() { "use server" const user = await getUser() if(!user) { throw redirect("/login"); }
return db.getPosts({ userId: user.id, private: true })})
export default function Page() { const posts = createAsync(() => getPrivatePosts());}一旦用户访问此路由,路由器将尝试获取 getPrivatePosts 数据。如果用户未登录,getPrivatePosts 将抛出异常,路由器将重定向到登录页面。