You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 13:40:35