Token导航 LogoToken导航

MCP Server · 安全风控

Auth SDK

一个轻量级、模块化的身份验证SDK,专为Next.js应用程序设计,支持多种认证提供商和AI代理认证。

未说明官方级别未说明来源级核验工具 0
会话管理Next.jsClaude身份验证

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
warpy-ai
提供方
warpy-ai

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

2

仓库热度

收录来源

1 个

MCP World

选型结论

Auth SDK 属于安全风控类 MCP Server,公开资料标注 0 个工具,通过传输方式未标注接入,适配 Claude,没有现成的安装命令;接入前要先准备 OAuth 授权。

分类

安全风控

传输方式

未说明

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

身份验证SDK

用于Next.js应用程序的轻量级模块化身份验证SDK,具有 模型上下文协议(MCP) 支持AI代理身份验证。

特性

  • ✅ 多个身份验证提供程序

- 谷歌、脸书、GitHub、GitLab、领英、微软、Spotify、Discord、Twitch、Epic Games OAuth 2.0 - 支持重新发送和Nodemailer的电子邮件魔术链接(无密码) - 带有6位验证码的双因素电子邮件身份验证(2FA) - 可定制的React电子邮件模板 - 为所有OAuth提供者提供PKCE支持 - 可扩展的提供商系统

  • ✅ MCP(模型上下文协议)集成

- AI代理委托身份验证 - 有范围、有时间限制的访问令牌 - 与Vercel AI SDK兼容

  • ✅ 会话管理

- 基于JWT的会议 - 安全的、仅支持httpOnly的Cookie - 数据库适配器支持(Prisma)

  • ✅ React集成

- useAuth() 钩子 - AuthProvider 上下文 - 服务器端会话助手

  • ✅ 安全第一

- OAuth流的CSRF保护 - 已签名的JWT代币 - 令牌撤销支持 - 使用Zod进行输入验证

  • ✅ Next.js 15+应用路由器

- 服务器组件 - API路线 - 流媒体支持

快速开始

安装

npm install auth-sdk

基本设置

// app/api/auth/config.ts
import { google, email } from 'auth-sdk';

export const authConfig = {
  provider: google({
    clientId: process.env.GOOGLE_CLIENT_ID!,
    clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
    redirectUri: 'http://localhost:3000/api/auth/callback/google',
  }),
  secret: process.env.AUTH_SECRET!,
};

环境变量

AUTH_SECRET=your-secret-key-min-32-characters-long
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret

使用示例

Google OAuth登录

// app/api/auth/signin/google/route.ts
import { authenticate } from 'auth-sdk';
import { googleAuthConfig } from '../config';

export async function GET(request: Request) {
  const result = await authenticate(googleAuthConfig, request);

  if (result.redirectUrl) {
    return Response.redirect(result.redirectUrl);
  }
}

电子邮件魔术链接

重新发送
// app/api/auth/signin/email/route.ts
import { authenticate, email } from 'auth-sdk';

const emailConfig = {
  provider: email({
    from: 'noreply@yourdomain.com',
    service: {
      type: 'resend',
      apiKey: process.env.RESEND_API_KEY!
    },
    appName: 'My App',
    companyName: 'My Company'
  }),
  secret: process.env.AUTH_SECRET!,
};

export async function POST(request: Request) {
  const { email } = await request.json();
  const result = await authenticate(emailConfig, request);

  return Response.json({ success: !result.error });
}
使用Nodemailer(SMTP)
const emailConfig = {
  provider: email({
    from: 'noreply@yourdomain.com',
    service: {
      type: 'nodemailer',
      server: 'smtp.gmail.com:587',
      auth: {
        user: process.env.GMAIL_USER!,
        pass: process.env.GMAIL_APP_PASSWORD!
      }
    }
  }),
  secret: process.env.AUTH_SECRET!,
};

双因素电子邮件身份验证(2FA)

通过电子邮件发送6位验证码,以增强安全性。

重新发送
// app/api/auth/signin/twofa/route.ts
import { authenticate, twofa } from 'auth-sdk';

const twofaConfig = {
  provider: twofa({
    from: 'noreply@yourdomain.com',
    service: {
      type: 'resend',
      apiKey: process.env.RESEND_API_KEY!
    },
    appName: 'My App',
    expirationMinutes: 5 // Code expires in 5 minutes
  }),
  secret: process.env.AUTH_SECRET!,
};

export async function GET(request: Request) {
  // Step 1: Send code (when ?email=user@example.com)
  // Step 2: Verify code (when ?identifier=xxx&code=123456)
  const result = await authenticate(twofaConfig, request);

  if (result.redirectUrl) {
    return Response.redirect(result.redirectUrl);
  }

  if (result.session) {
    // Code verified, session created
    return Response.json({ success: true });
  }

  return Response.json({ error: result.error });
}
使用Nodemailer(SMTP)
const twofaConfig = {
  provider: twofa({
    from: 'noreply@yourdomain.com',
    service: {
      type: 'nodemailer',
      server: 'smtp.gmail.com:587',
      auth: {
        user: process.env.GMAIL_USER!,
        pass: process.env.GMAIL_APP_PASSWORD!
      }
    }
  }),
  secret: process.env.AUTH_SECRET!,
};

特征:

  • 加密安全的6位代码
  • 短期代币(默认5分钟)
  • 支持重试的一次性代码
  • 漂亮的电子邮件模板
  • 自动清理

看 2FA提供商文档 和 2FA实施指南 以获取完整的文档。

获取会话

// app/api/auth/session/route.ts
import { getSession } from 'auth-sdk';

export async function GET(request: Request) {
  const session = await getSession(request, process.env.AUTH_SECRET!);
  return Response.json({ session });
}

React挂钩

'use client';

import { useAuth } from 'auth-sdk/hooks';

export function ProfileButton() {
  const { session, loading, signOut } = useAuth();

  if (loading) return 
Loading...
;
  if (!session) return Sign In;

  return (
    

      {session.user.email}
      Sign Out
    

  );
}

MCP(AI代理身份验证)

使AI代理能够作为具有范围、时间限制访问权限的用户进行身份验证。

创建MCP工具

// app/api/mcp/route.ts
import { createMCPTools } from 'auth-sdk/mcp';

const mcpTools = createMCPTools({
  secret: process.env.AUTH_SECRET!,
});

export async function POST(request: Request) {
  const { tool, args } = await request.json();
  const result = await mcpTools[tool].execute(args);
  return Response.json(result);
}

代理登录

// AI agent logs in as user
const response = await fetch('/api/mcp', {
  method: 'POST',
  body: JSON.stringify({
    tool: 'agent_login',
    args: {
      userId: 'user-123',
      scopes: ['debug', 'read'],
      agentId: 'claude-assistant',
      expiresIn: '15m'
    }
  })
});

const { token } = await response.json();

使用代理令牌

// Protected route
import { verifyAgentToken } from 'auth-sdk';

export async function GET(request: Request) {
  const session = await verifyAgentToken(request, process.env.AUTH_SECRET!);

  if (!session || !session.scopes?.includes('read')) {
    return new Response('Unauthorized', { status: 401 });
  }

  return Response.json({ data: 'Protected data' });
}

AI SDK集成

import { generateText } from 'ai';
import { createMCPTools } from 'auth-sdk/mcp';

const mcpTools = createMCPTools({ secret: process.env.AUTH_SECRET! });

const { text } = await generateText({
  model: openai('gpt-4'),
  tools: mcpTools,
  prompt: 'Login as user-123 with debug scope and check their activity'
});

数据库适配器

使用Prisma适配器进行会话持久化。

import { prismaAdapter } from 'auth-sdk/adapters/prisma';
import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

const authConfig = {
  provider: google({ /* ... */ }),
  secret: process.env.AUTH_SECRET!,
  adapter: prismaAdapter(prisma), // Enable DB sessions
};

API 参考

核心功能

authenticate(config, request?, payload?)

支持OAuth、电子邮件和MCP的主要身份验证功能。

参数:

  • config: AuthConfig -身份验证配置
  • request?: Request -HTTP请求(用于OAuth/电子邮件)
  • payload?: MCPLoginPayload -MCP代理登录有效负载

退货: Promise

interface AuthenticateResult {
  session?: Session;
  error?: string;
  redirectUrl?: string;
}
getSession(request, secret)

从请求Cookie获取当前会话。

参数:

  • request: Request -带有Cookie的HTTP请求
  • secret: string -JWT签名秘密

退货: Promise

signOut(request, config)

注销用户并清除会话。

参数:

  • request: Request -HTTP请求
  • config: AuthConfig -身份验证配置

退货: Promise

verifyAgentToken(request, secret)

验证授权标头中的MCP代理令牌。

参数:

  • request: Request -HTTP请求
  • secret: string -JWT签名秘密

退货: Promise

提供商

google(options)

谷歌OAuth提供商。

google({
  clientId: string;
  clientSecret: string;
  redirectUri: string;
  scope?: string[]; // Default: ['openid', 'email', 'profile']
})
email(options)

电子邮件魔术链接提供商。

email({
  server: string;      // 'smtp.gmail.com:587'
  from: string;        // 'noreply@example.com'
  auth?: {
    user: string;
    pass: string;
  };
})

MCP工具

createMCPTools({ secret, adapter? })

为AI代理创建MCP工具。

退货:

  • agent_login -以具有范围访问权限的用户身份登录
  • get_session -验证并检索会话信息
  • revoke_token -使令牌无效

React挂钩

useAuth()

访问React组件中的session和auth方法。

const {
  session: Session | null;
  loading: boolean;
  signIn: (email: string) => Promise;
  signOut: () => Promise;
  refreshSession: () => Promise;
} = useAuth();

示例

看 examples/nextjs应用路由器 完整Next.js应用路由器示例的目录,包括:

  • Google OAuth登录
  • 电子邮件魔术链接登录
  • 会话管理
  • MCP代理身份验证
  • 受保护的路线
  • React钩子的使用

运行示例

cd examples/nextjs-app-router
cp .env.example .env.local
# Edit .env.local with your credentials
npm install
npm run dev

访问 http://localhost:3000

文档

建筑

auth-sdk/
├── src/
│   ├── core.ts                 # Main authentication functions
│   ├── providers/              # OAuth, Email providers
│   │   ├── google.ts
│   │   ├── email.ts
│   │   └── types.ts
│   ├── adapters/               # Database adapters
│   │   ├── prisma.ts
│   │   └── types.ts
│   ├── mcp/                    # MCP tools for AI agents
│   │   └── mcp.ts
│   ├── hooks/                  # React hooks
│   │   └── useAuth.tsx
│   └── utils/                  # Utilities
│       ├── jwt.ts
│       ├── csrf.ts
│       ├── oauth.ts
│       ├── cookie.ts
│       └── tokens.ts
└── examples/
    └── nextjs-app-router/      # Complete Next.js example

安全

最佳实践

  1. 使用强大的秘密:至少32个字符 AUTH_SECRET
  2. 启用HTTPS:在生产环境中始终使用HTTPS
  3. 设置安全Cookie:httpOnly、security、sameSite标志
  4. 验证输入:所有输入均已Zod验证
  5. 代币寿命短:MCP令牌将在15分钟后过期
  6. 基于范围的访问:为代理使用最小范围
  7. 令牌撤销:使用后撤销代币

生产检查表

  • \[\]设置强 AUTH_SECRET (最少32个字符)
  • \[\]使用生产OAuth凭据
  • \[\]配置生产SMTP服务器
  • \[\]启用HTTPS/TLS
  • \[\]添加速率限制
  • \[\]设置错误监控
  • \[\]配置数据库适配器
  • \[\]检查安全设置
  • \[\]添加审核日志记录
  • \[\]测试所有身份验证流

TypeScript支持

完全使用TypeScript 5.9+。所有函数和接口都以类型导出。

import type {
  AuthConfig,
  Session,
  Provider,
  Adapter,
  MCPLoginPayload,
  AuthenticateResult,
} from 'auth-sdk';

贡献

欢迎投稿!请在提交PR之前阅读我们的投稿指南。

发展

# Clone repository
git clone https://github.com/yourusername/auth-sdk.git
cd auth-sdk

# Install dependencies
npm install

# Build
npm run build

# Run tests (when available)
npm test

# Lint
npm run eslint

路线图

完成✅

  • \[x\] 核心认证系统
  • \[x\] 谷歌OAuth提供商
  • \[x\] 电子邮件魔术链接提供商
  • \[x\] 会话管理
  • \[x\] 用于AI代理的MCP工具
  • \[x\] React挂钩
  • \[x\] Prisma适配器
  • \[x\] Next.js示例应用
  • \[x\] 全面的文件

未来🚀

  • \[\]其他OAuth提供者(GitHub、微软、推特)
  • \[\]凭据提供程序(用户名/密码)
  • \[\]多因素身份验证(MFA/2FA)
  • \[\]JWT刷新令牌轮换
  • \[\]用于会话的Redis适配器
  • \[\]限速中间件
  • \[\]Webhook支持
  • \[\]会话管理的管理UI
  • \[\]Vitest单元测试

许可证

ISC许可证-请参阅 许可证 文件以获取详细信息。

鸣谢

创建于♥ 通过 卢卡斯·奥利维拉

灵感来源:

支持

______________________________________________________________________

使用TypeScript和Next.js制作 • 文档 • 示例

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

MDX本地部署身份验证Next.jsOAuthAI代理认证会话管理

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

资产与漏洞排查

批量查询资产和漏洞信息,输出待修清单。

日志审计

从日志里筛出异常访问和高风险操作。

合规检查

按规则核对配置项,记录不符合项。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在安全风控场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 暂时拿不到OAuth 授权的人。
  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Auth SDK

MCP World · 本页

0未说明未标注1 个2026-05-17
Modelcontextprotocol C22988b0

MCP World

0stdio有1 个2026-05-17
Hexstrike AI

MCP World

0stdio有1 个2026-05-17
Cyber Strike AI

MCP World

75未说明未标注1 个2026-05-17
MCP Scan

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Auth SDK 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Auth SDK 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Auth SDK 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Auth SDK 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Auth SDK 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP