Files
NianAIGC/contracts/auth/current-session-v1.json

173 lines
4.3 KiB
JSON

{
"version": 1,
"path": "/api/auth/me",
"methods": {
"GET": {
"status": 200,
"body": "json",
"contentType": "application/json",
"allow": null
},
"HEAD": {
"status": 200,
"body": "empty",
"contentType": "application/json",
"allow": null,
"executesGet": true
},
"OPTIONS": {
"status": 204,
"body": "empty",
"contentType": null,
"allow": "GET, HEAD, OPTIONS"
},
"unsupported": {
"methods": ["POST", "PUT", "PATCH", "DELETE"],
"status": 405,
"body": "empty",
"contentType": null,
"allow": null
}
},
"authConfigurationCases": [
{
"name": "development without a secret is optional and unconfigured",
"environment": {
"NODE_ENV": "development"
},
"expected": {
"required": false,
"configured": false,
"sessionSecret": null
}
},
{
"name": "production without a secret is required and unconfigured",
"environment": {
"NODE_ENV": "production"
},
"expected": {
"required": true,
"configured": false,
"sessionSecret": null
}
},
{
"name": "explicit false with a secret remains configured",
"environment": {
"NODE_ENV": "production",
"ZHINIAN_AUTH_REQUIRED": " off ",
"ZHINIAN_AUTH_SESSION_SECRET": " explicit-secret "
},
"expected": {
"required": false,
"configured": true,
"sessionSecret": "explicit-secret"
}
},
{
"name": "disabled with a secret remains configured",
"environment": {
"NODE_ENV": "production",
"ZHINIAN_AUTH_REQUIRED": "yes",
"ZHINIAN_AUTH_DISABLED": " ON ",
"ZHINIAN_AUTH_SESSION_SECRET": "disabled-secret"
},
"expected": {
"required": false,
"configured": true,
"sessionSecret": "disabled-secret"
}
},
{
"name": "the primary trimmed secret wins over legacy fallbacks",
"environment": {
"NODE_ENV": "development",
"ZHINIAN_AUTH_REQUIRED": "auto",
"ZHINIAN_AUTH_SESSION_SECRET": " primary-secret ",
"AUTH_SESSION_SECRET": "secondary-secret",
"NEXTAUTH_SECRET": "legacy-secret"
},
"expected": {
"required": true,
"configured": true,
"sessionSecret": "primary-secret"
}
},
{
"name": "a blank primary secret falls through and truthy booleans ignore case and whitespace",
"environment": {
"NODE_ENV": "development",
"ZHINIAN_AUTH_REQUIRED": " TrUe ",
"ZHINIAN_AUTH_SESSION_SECRET": " ",
"AUTH_SESSION_SECRET": " fallback-secret "
},
"expected": {
"required": true,
"configured": true,
"sessionSecret": "fallback-secret"
}
}
],
"responses": {
"anonymous": {
"authenticated": false,
"authRequired": false,
"authConfigured": false,
"authMode": null,
"user": null
},
"authenticatedUser": {
"authenticated": true,
"authRequired": true,
"authConfigured": true,
"authMode": "user",
"user": {
"id": "user-1",
"subject": "user-1",
"username": "13800138001",
"phone": "13800138001",
"displayName": "普通用户",
"clientId": "platform",
"organizationId": "org-1",
"organizationName": "第一组织",
"role": "user",
"status": "active",
"authorities": ["ROLE_USER"],
"scope": []
}
},
"unboundSuperAdministrator": {
"authenticated": true,
"authRequired": true,
"authConfigured": true,
"authMode": "admin",
"user": {
"id": "super-1",
"subject": "super-1",
"username": "13800138003",
"phone": "13800138003",
"displayName": "平台超级管理员",
"clientId": "platform",
"role": "super_admin",
"status": "active",
"authorities": ["ROLE_SUPER_ADMIN", "SUPER_ADMIN"],
"scope": []
}
}
},
"forbiddenSessionKeys": [
"version",
"issuedAt",
"expiresAt",
"sessionVersion",
"accessToken",
"tokenType"
],
"infrastructureError": {
"directGet": "rejects",
"transportStatus": 500,
"mustNotReturnAnonymous": true
}
}