feat(server): 添加可插拔认证系统 | add pluggable authentication system (#386)

* feat(server): 添加可插拔认证系统 | add pluggable authentication system

- 新增 JWT 认证提供者 (createJwtAuthProvider)
- 新增 Session 认证提供者 (createSessionAuthProvider)
- 新增服务器认证 mixin (withAuth)
- 新增房间认证 mixin (withRoomAuth)
- 新增认证装饰器 (@requireAuth, @requireRole)
- 新增测试工具 (MockAuthProvider)
- 新增中英文文档
- 导出路径: @esengine/server/auth, @esengine/server/auth/testing

* fix(server): 使用加密安全的随机数生成 session ID | use crypto-secure random for session ID
This commit is contained in:
YHH
2025-12-29 16:10:09 +08:00
committed by GitHub
parent 1cfa64aa0f
commit 61a13baca2
26 changed files with 4404 additions and 4 deletions

View File

@@ -11,6 +11,14 @@
"import": "./dist/index.js",
"types": "./dist/index.d.ts"
},
"./auth": {
"import": "./dist/auth/index.js",
"types": "./dist/auth/index.d.ts"
},
"./auth/testing": {
"import": "./dist/auth/testing/index.js",
"types": "./dist/auth/testing/index.d.ts"
},
"./testing": {
"import": "./dist/testing/index.js",
"types": "./dist/testing/index.d.ts"
@@ -33,11 +41,19 @@
"@esengine/rpc": "workspace:*"
},
"peerDependencies": {
"ws": ">=8.0.0"
"ws": ">=8.0.0",
"jsonwebtoken": ">=9.0.0"
},
"peerDependenciesMeta": {
"jsonwebtoken": {
"optional": true
}
},
"devDependencies": {
"@types/jsonwebtoken": "^9.0.0",
"@types/node": "^20.0.0",
"@types/ws": "^8.5.13",
"jsonwebtoken": "^9.0.0",
"rimraf": "^5.0.0",
"tsup": "^8.0.0",
"typescript": "^5.7.0",