@lytjs/middleware-auth 6.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,40 @@
1
+ # @lytjs/middleware-auth
2
+
3
+ > LytJS 认证中间件。
4
+
5
+ [![npm version](https://img.shields.io/npm/v/@lytjs/middleware-auth.svg)](https://www.npmjs.com/package/@lytjs/middleware-auth)
6
+ [![license](https://img.shields.io/npm/l/@lytjs/middleware-auth.svg)](https://gitee.com/lytjs/lytjs/blob/main/LICENSE)
7
+
8
+ ## 简介
9
+
10
+ `@lytjs/middleware-auth` 是 LytJS 框架的认证中间件,提供灵活的认证机制。
11
+
12
+ ### 核心特性
13
+
14
+ - **Token 验证**:支持 Bearer Token 和其他认证方式
15
+ - **可自定义验证逻辑**:支持自定义验证函数
16
+ - **用户信息注入**:在上下文中注入用户信息
17
+ - **零依赖**:不引入任何外部依赖
18
+
19
+ ## 安装
20
+
21
+ ```bash
22
+ npm install @lytjs/middleware-auth
23
+ ```
24
+
25
+ 或使用 pnpm:
26
+
27
+ ```bash
28
+ pnpm add @lytjs/middleware-auth
29
+ ```
30
+
31
+ ## 许可证
32
+
33
+ MIT License - [查看许可证](https://gitee.com/lytjs/lytjs/blob/main/LICENSE)
34
+
35
+ ## 贡献指南
36
+
37
+ 欢迎提交 Issue 和 Pull Request!
38
+
39
+ - [Gitee 仓库](https://gitee.com/lytjs/lytjs)
40
+ - [问题反馈](https://gitee.com/lytjs/lytjs/issues)
package/dist/index.cjs ADDED
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ // src/auth.ts
4
+ function createAuthMiddleware(options) {
5
+ const headerName = options.headerName || "Authorization";
6
+ return async (request, ctx, next) => {
7
+ const authHeader = request.headers.get(headerName) || "";
8
+ const token = authHeader.startsWith("Bearer ") ? authHeader.slice(7) : authHeader;
9
+ if (!token) {
10
+ return new Response(JSON.stringify({ error: "\u672A\u6388\u6743" }), {
11
+ status: 401,
12
+ headers: { "Content-Type": "application/json" }
13
+ });
14
+ }
15
+ const user = await options.authenticate(token);
16
+ if (!user) {
17
+ return new Response(JSON.stringify({ error: "\u672A\u6388\u6743" }), {
18
+ status: 401,
19
+ headers: { "Content-Type": "application/json" }
20
+ });
21
+ }
22
+ ctx.user = user;
23
+ await next();
24
+ };
25
+ }
26
+
27
+ exports.createAuthMiddleware = createAuthMiddleware;
28
+ //# sourceMappingURL=index.cjs.map
29
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/auth.ts"],"names":[],"mappings":";;;AAYO,SAAS,qBAAqB,OAAA,EAAkC;AACrE,EAAA,MAAM,UAAA,GAAa,QAAQ,UAAA,IAAc,eAAA;AAEzC,EAAA,OAAO,OAAO,OAAA,EAAkB,GAAA,EAAwB,IAAA,KAA8B;AACpF,IAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,OAAA,CAAQ,GAAA,CAAI,UAAU,CAAA,IAAK,EAAA;AACtD,IAAA,MAAM,KAAA,GAAQ,WAAW,UAAA,CAAW,SAAS,IAAI,UAAA,CAAW,KAAA,CAAM,CAAC,CAAA,GAAI,UAAA;AAEvE,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,OAAO,IAAI,SAAS,IAAA,CAAK,SAAA,CAAU,EAAE,KAAA,EAAO,oBAAA,EAAO,CAAA,EAAG;AAAA,QACpD,MAAA,EAAQ,GAAA;AAAA,QACR,OAAA,EAAS,EAAE,cAAA,EAAgB,kBAAA;AAAmB,OAC/C,CAAA;AAAA,IACH;AAEA,IAAA,MAAM,IAAA,GAAO,MAAM,OAAA,CAAQ,YAAA,CAAa,KAAK,CAAA;AAE7C,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA,OAAO,IAAI,SAAS,IAAA,CAAK,SAAA,CAAU,EAAE,KAAA,EAAO,oBAAA,EAAO,CAAA,EAAG;AAAA,QACpD,MAAA,EAAQ,GAAA;AAAA,QACR,OAAA,EAAS,EAAE,cAAA,EAAgB,kBAAA;AAAmB,OAC/C,CAAA;AAAA,IACH;AAEA,IAAA,GAAA,CAAI,IAAA,GAAO,IAAA;AACX,IAAA,MAAM,IAAA,EAAK;AAAA,EACb,CAAA;AACF","file":"index.cjs","sourcesContent":["/**\n * 认证中间件实现\n */\nimport type { AuthOptions } from './types';\nimport type { Middleware, MiddlewareContext } from '@lytjs/middleware';\n\n/**\n * 创建认证中间件\n *\n * @param options - 认证配置选项\n * @returns 认证中间件函数\n */\nexport function createAuthMiddleware(options: AuthOptions): Middleware {\n const headerName = options.headerName || 'Authorization';\n\n return async (request: Request, ctx: MiddlewareContext, next: () => Promise<void>) => {\n const authHeader = request.headers.get(headerName) || '';\n const token = authHeader.startsWith('Bearer ') ? authHeader.slice(7) : authHeader;\n\n if (!token) {\n return new Response(JSON.stringify({ error: '未授权' }), {\n status: 401,\n headers: { 'Content-Type': 'application/json' },\n });\n }\n\n const user = await options.authenticate(token);\n\n if (!user) {\n return new Response(JSON.stringify({ error: '未授权' }), {\n status: 401,\n headers: { 'Content-Type': 'application/json' },\n });\n }\n\n ctx.user = user;\n await next();\n };\n}\n"]}
package/dist/index.mjs ADDED
@@ -0,0 +1,27 @@
1
+ // src/auth.ts
2
+ function createAuthMiddleware(options) {
3
+ const headerName = options.headerName || "Authorization";
4
+ return async (request, ctx, next) => {
5
+ const authHeader = request.headers.get(headerName) || "";
6
+ const token = authHeader.startsWith("Bearer ") ? authHeader.slice(7) : authHeader;
7
+ if (!token) {
8
+ return new Response(JSON.stringify({ error: "\u672A\u6388\u6743" }), {
9
+ status: 401,
10
+ headers: { "Content-Type": "application/json" }
11
+ });
12
+ }
13
+ const user = await options.authenticate(token);
14
+ if (!user) {
15
+ return new Response(JSON.stringify({ error: "\u672A\u6388\u6743" }), {
16
+ status: 401,
17
+ headers: { "Content-Type": "application/json" }
18
+ });
19
+ }
20
+ ctx.user = user;
21
+ await next();
22
+ };
23
+ }
24
+
25
+ export { createAuthMiddleware };
26
+ //# sourceMappingURL=index.mjs.map
27
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/auth.ts"],"names":[],"mappings":";AAYO,SAAS,qBAAqB,OAAA,EAAkC;AACrE,EAAA,MAAM,UAAA,GAAa,QAAQ,UAAA,IAAc,eAAA;AAEzC,EAAA,OAAO,OAAO,OAAA,EAAkB,GAAA,EAAwB,IAAA,KAA8B;AACpF,IAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,OAAA,CAAQ,GAAA,CAAI,UAAU,CAAA,IAAK,EAAA;AACtD,IAAA,MAAM,KAAA,GAAQ,WAAW,UAAA,CAAW,SAAS,IAAI,UAAA,CAAW,KAAA,CAAM,CAAC,CAAA,GAAI,UAAA;AAEvE,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,OAAO,IAAI,SAAS,IAAA,CAAK,SAAA,CAAU,EAAE,KAAA,EAAO,oBAAA,EAAO,CAAA,EAAG;AAAA,QACpD,MAAA,EAAQ,GAAA;AAAA,QACR,OAAA,EAAS,EAAE,cAAA,EAAgB,kBAAA;AAAmB,OAC/C,CAAA;AAAA,IACH;AAEA,IAAA,MAAM,IAAA,GAAO,MAAM,OAAA,CAAQ,YAAA,CAAa,KAAK,CAAA;AAE7C,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA,OAAO,IAAI,SAAS,IAAA,CAAK,SAAA,CAAU,EAAE,KAAA,EAAO,oBAAA,EAAO,CAAA,EAAG;AAAA,QACpD,MAAA,EAAQ,GAAA;AAAA,QACR,OAAA,EAAS,EAAE,cAAA,EAAgB,kBAAA;AAAmB,OAC/C,CAAA;AAAA,IACH;AAEA,IAAA,GAAA,CAAI,IAAA,GAAO,IAAA;AACX,IAAA,MAAM,IAAA,EAAK;AAAA,EACb,CAAA;AACF","file":"index.mjs","sourcesContent":["/**\n * 认证中间件实现\n */\nimport type { AuthOptions } from './types';\nimport type { Middleware, MiddlewareContext } from '@lytjs/middleware';\n\n/**\n * 创建认证中间件\n *\n * @param options - 认证配置选项\n * @returns 认证中间件函数\n */\nexport function createAuthMiddleware(options: AuthOptions): Middleware {\n const headerName = options.headerName || 'Authorization';\n\n return async (request: Request, ctx: MiddlewareContext, next: () => Promise<void>) => {\n const authHeader = request.headers.get(headerName) || '';\n const token = authHeader.startsWith('Bearer ') ? authHeader.slice(7) : authHeader;\n\n if (!token) {\n return new Response(JSON.stringify({ error: '未授权' }), {\n status: 401,\n headers: { 'Content-Type': 'application/json' },\n });\n }\n\n const user = await options.authenticate(token);\n\n if (!user) {\n return new Response(JSON.stringify({ error: '未授权' }), {\n status: 401,\n headers: { 'Content-Type': 'application/json' },\n });\n }\n\n ctx.user = user;\n await next();\n };\n}\n"]}
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@lytjs/middleware-auth",
3
+ "version": "6.6.0",
4
+ "description": "LytJS 认证中间件",
5
+ "type": "module",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.mjs",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.mjs",
13
+ "require": "./dist/index.cjs"
14
+ },
15
+ "./package.json": "./package.json"
16
+ },
17
+ "files": [
18
+ "dist",
19
+ "README.md",
20
+ "LICENSE"
21
+ ],
22
+ "sideEffects": false,
23
+ "scripts": {
24
+ "dev": "tsup --watch",
25
+ "build": "tsup",
26
+ "test": "vitest run",
27
+ "test:watch": "vitest",
28
+ "test:coverage": "vitest run --coverage",
29
+ "type-check": "tsc --noEmit",
30
+ "lint": "eslint \"src/**/*.ts\" \"tests/**/*.ts\"",
31
+ "clean": "rm -rf dist node_modules .turbo"
32
+ },
33
+ "dependencies": {
34
+ "@lytjs/common-is": "workspace:*",
35
+ "@lytjs/middleware": "workspace:*"
36
+ },
37
+ "devDependencies": {
38
+ "tsup": "^8.3.6",
39
+ "typescript": "^5.7.3",
40
+ "vitest": "^3.0.0"
41
+ },
42
+ "peerDependencies": {},
43
+ "publishConfig": {
44
+ "access": "public",
45
+ "registry": "https://registry.npmjs.org/"
46
+ },
47
+ "repository": {
48
+ "type": "git",
49
+ "url": "https://gitee.com/lytjs/lytjs.git",
50
+ "directory": "packages/ecosystem/packages/web-framework/packages/middleware-auth"
51
+ },
52
+ "keywords": [
53
+ "lytjs",
54
+ "middleware",
55
+ "auth",
56
+ "authentication"
57
+ ],
58
+ "author": "LytJS Team",
59
+ "license": "MIT"
60
+ }