173 lines
4.3 KiB
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
|
|
}
|
|
}
|