在Svelte Kit中使用Auth.js,如何在+server端点获取用户会话?
在Svelte Kit的+server.ts/js端点中获取Auth.js用户会话
要在Svelte Kit的服务器端点(+server.ts/js)中获取Auth.js的用户会话,只需使用Auth.js提供的getServerSession工具函数,步骤如下:
1. 导入必要模块
在你的+server.ts/js文件中,导入getServerSession、端点类型定义,以及你的Auth.js配置文件:
import { getServerSession } from '@auth/sveltekit'; import type { RequestHandler } from './$types'; import { authConfig } from '$lib/server/auth'; // 替换为你的Auth配置实际路径
2. 在请求处理器中获取会话
在GET/POST等请求处理器函数中,通过event参数和auth配置调用getServerSession,即可获取当前用户的会话信息:
export const GET: RequestHandler = async ({ event }) => { // 获取当前用户会话 const session = await getServerSession(event, authConfig); // 处理未登录场景 if (!session) { return new Response(JSON.stringify({ message: '用户未登录' }), { status: 401, headers: { 'Content-Type': 'application/json' } }); } // 已登录时返回用户信息或业务数据 return new Response(JSON.stringify({ user: session.user }), { status: 200, headers: { 'Content-Type': 'application/json' } }); };
关键注意事项
- Auth.js配置文件(包含providers、secret等敏感信息)必须放在server目录下,禁止暴露到客户端
getServerSession仅支持在服务器环境使用,包括+server.ts/js端点和server load函数,不能在客户端组件中调用- 可根据业务需求调整未登录时的响应逻辑,比如返回特定错误码或自定义提示内容
内容的提问来源于stack exchange,提问作者ithan
相关产品推荐
相关产品推荐

