SQLite认证服务器

一个基于SQLite的OAuth2.1认证服务器,提供用户管理、会话管理和资源访问控制功能。

  • by granular-software
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 granular-software/template-express-oauth-sqlite

使用说明

SQLite

mcpresso MCP服务器

快速开始

  1. 安装依赖项

    npm install
    
  2. 设置环境变量

    cp .env.example .env
    # Edit .env with your configuration
    
  3. 初始化数据库

    npm run db:init
    

    这将创建具有所有必要表和索引的SQLite数据库。

  4. 启动开发服务器

    npm run dev
    
  5. 为生产而建

    npm run build
    npm start
    

数据库设置

此模板使用SQLite进行身份验证数据存储(用户、会话、令牌等)。数据库文件在init时自动创建,init脚本创建完整的模式。

初始化架构:

npm run db:init

数据库结构

初始化脚本创建以下表:

  • oauth_users -用户帐户(用户名/电子邮件、hashed_password、作用域、个人资料)
  • oauth_客户端 -OAuth客户端注册表(重定向URI、作用域、授权类型)
  • oauth_授权_代码 -授权码(带PKCE字段)
  • oauth_access_tokes -过期访问令牌
  • oauth_refresh_tokes -刷新过期令牌
  • 笔记 -示例资源(用户编写的笔记)

数据库功能

  • ✅ 基于SQLite文件的存储 -不需要外部数据库
  • ✅ 外键约束 -维护数据完整性
  • ✅ 优化指标 -快速查找常见查询
  • ✅ 自动时间戳 -创建/更新跟踪
  • ✅ OAuth集成 -会话和令牌管理

数据库位置

  • 默认路径: data/app.db
  • 要自定义,请设置 DATABASE_PATH 在……里面 .env 在运行init之前。

特性

  • 使用SQLite进行OAuth2.1身份验证
  • 用户管理和会话
  • 带有作者关系的笔记资源
  • TypeScript支持
  • 开发和生产建设
  • 环境变量配置

项目结构

src/
├── server.ts          # Main server file
├── auth/              # OAuth configuration
│   └── oauth.ts
├── resources/         # MCP resources
│   ├── schemas/       # Resource schemas
│   │   └── Note.ts    # Note data model
│   └── handlers/      # Resource handlers
│       └── note.ts    # Notes with author relationships
└── storage/           # Database layer
    └── sqlite-storage.ts

环境变量

变量 描述 必填 默认
端口 服务器端口 编号 3000
SERVER_URL 服务器的基本URL 是 -
JWT_SECRET JWT令牌的密钥 是 -
DATABASE_PATH SQLite数据库文件路径 否 data/app.db

JWT秘密

为令牌签名生成安全的JWT密钥。

选项A——脚本(使用 openssl 引擎盖下):

npm run secret:generate

选项B——手动(使用openssl):

JWT_SECRET=$(openssl rand -hex 64)
echo "JWT_SECRET=$JWT_SECRET" >> .env   # or replace existing JWT_SECRET in .env

对这个值保密。旋转它将使现有令牌无效。

发展

  • npm run dev -使用热重新加载启动开发服务器
  • npm run build -为生产而建
  • npm run typecheck -无建筑类型检查
  • npm run db:init -初始化SQLite数据库和完整模式
  • npm run secret:generate -生成安全的JWT密钥

用户管理

使用安全密码哈希创建和管理用户:

  • npm run user:create -使用默认凭据创建用户
  • npm run user:create <username> <email> <password> -使用自定义凭据创建用户
  • npm run user:test-password -测试密码验证功能
  • npm run user:test-auth -测试OAuth身份验证流程

有关详细的用户管理文档,请参阅 用户_管理.md.

许可证

麻省理工学院