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
将抛出异常,路由器将重定向到登录页面。