Skip to content
Niu DocsNiu 牛元文档
Dashboard控制台

Update current member profile

Generated from the checked-in source. Do not edit this reference by hand.

PUT /api/v1/auth/profile

Current authenticated member only; the target member is derived from authentication, never supplied by the caller. Requires an operator/member session with Read permission; installation bearer credentials are rejected. Browser member-cookie sessions are also supported by the existing authentication middleware. All responses carry Cache-Control: no-store. When password authentication is configured, cookie/browser writes require a valid Origin and cookie-request checks; bearer writes validate Origin when supplied. Atomically updates name and avatar with optimistic revision checking. Email is read-only. Null or omitted avatar_data_url clears the avatar. Route body limit is 180000 bytes; rejected bodies are mapped to JSON invalid-request errors.

Operation: updateMemberProfile.

Use the credential and permission scope described above. Each object below is an alternative; schemes within one object are required together.

JSON
[
{
"bearerAuth": []
}
]

Set NIU_ORIGIN to your installation origin (without /v1). Replace path, query and header placeholders with the required values. Query examples use curl 7.87 or newer to encode values with --url-query. Use the credential scope described above; a bearer token must have the authority required by this operation.

Shell
curl --fail-with-body -X PUT "$NIU_ORIGIN/api/v1/auth/profile" \
-H "Authorization: Bearer $NIU_BEARER_TOKEN" \
-H 'Content-Type: application/json' \
--data @request.json

No path, query, or header parameters are declared.

Required.

JSON
{
"type": "object",
"additionalProperties": false,
"required": [
"name",
"expected_revision"
],
"properties": {
"name": {
"type": "string",
"maxLength": 100,
"description": "Trimmed before saving; must contain 1 to 100 Unicode characters and no control characters."
},
"avatar_data_url": {
"type": [
"string",
"null"
],
"maxLength": 175000,
"description": "Optional PNG data URL. Null or omission removes the existing avatar. Decoded and normalized PNG must each be at most 131072 bytes and dimensions at most 256 by 256 pixels."
},
"expected_revision": {
"type": "integer",
"format": "int64",
"minimum": 0,
"description": "Numeric revision returned by GET; a profile with no saved customization starts at zero. Successful update increments it."
}
}
}

Current saved member data.

Response headers:

JSON
{
"Cache-Control": {
"schema": {
"type": "string",
"const": "no-store"
}
}
}

Content type: application/json.

JSON
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"type": "object",
"required": [
"name",
"email",
"avatar_data_url",
"revision"
],
"properties": {
"name": {
"type": "string"
},
"email": {
"type": [
"string",
"null"
]
},
"avatar_data_url": {
"type": [
"string",
"null"
],
"description": "Normalized PNG data URL, or null when no avatar is saved."
},
"revision": {
"type": "integer",
"format": "int64",
"minimum": 0
}
}
}
}
}

Invalid JSON, unknown fields or invalid input.

Missing, invalid or revoked member authentication.

Read permission required; installation credentials cannot access member data, or a write failed origin/cookie checks.

expected_revision does not match the saved profile; reload before retrying.

Durable storage unavailable.

Current authenticated member only; the target member is derived from authentication, never supplied by the caller. Requires an operator/member session with Read permission; installation bearer credentials are rejected. Browser member-cookie sessions are also supported by the existing authentication middleware. All responses carry Cache-Control: no-store. When password authentication is configured, cookie/browser writes require a valid Origin and cookie-request checks; bearer writes validate Origin when supplied. Atomically updates name and avatar with optimistic revision checking. Email is read-only. Null or omitted avatar_data_url clears the avatar. Route body limit is 180000 bytes; rejected bodies are mapped to JSON invalid-request errors.

Supported scope: implemented