---
title: 用户生成内容
description: Sudomimus 如何处理用户上传头像、生成头像、审核，以及应用侧头像交付。
editUrl: true
head: []
template: doc
sidebar:
  order: 1
  hidden: false
  attrs: {}
pagefind: true
draft: false
---

import { CardGrid, LinkCard } from "@astrojs/starlight/components";

Sudomimus 的用户生成内容目前主要围绕账户头像：用户可以保留生成头像、上传自己的图片，并决定哪些应用可以收到静态或动态头像声明。

系统把三件事分开处理：

- **账户媒体**由用户在 With 门户中控制。
- **处理与审核**会把上传图片转换成可公开显示的 WebP 版本。
- **应用交付**由声明策略、用户授权和按扇区隔离的不透明 URL 共同决定。

<CardGrid>
<LinkCard
    title="头像上传"
    description="上传意图流程、文件限制、处理状态与审核行为。"
    href="/zh-cn/user-generated-content/avatar-uploads/"
/>
<LinkCard
    title="头像审核生命周期"
    description="待审核、通过和拒绝分别对账户页与应用意味着什么。"
    href="/zh-cn/user-generated-content/avatar-review-lifecycle/"
/>
<LinkCard
    title="头像声明与交付"
    description="静态与动态头像 URL 如何进入 access token 和 OIDC 响应。"
    href="/zh-cn/user-generated-content/avatar-claims-and-delivery/"
/>
</CardGrid>

## 账户头像

每个账户有一个当前账户头像。它可能来自：

| 来源 | 含义 |
| --- | --- |
| `GENERATED` | Sudomimus 生成的账户头像。这是默认值，并且可以随时重置。 |
| `UPLOAD` | 被上传管线接受的用户图片。 |

账户头像不会自动共享给每个应用。只有当应用的声明策略请求 `STATIC_AVATAR` 或 `ANIMATED_AVATAR`，并且用户授权允许真实头像时，应用才会收到它。否则，应用可能收到扇区占位头像，或者根据策略完全没有头像字段。

## 处理模型

上传原图是私有候选文件。用户完成上传意图后，Sudomimus 会验证文件、创建新的头像资源，并异步处理成统一格式。公开头像交付使用处理后的 WebP 文件，而不是原始上传文件。

处理后的头像是 `512x512` 的正方形，并且一定有静态版本。动图输入还可以生成动态 WebP 版本。如果头像没有动画，动态 URL 会回落到静态 URL。

## 相关阅读

- [身份声明与共享](/zh-cn/concepts/identity-claims/) —— 开发者策略与用户授权模型。
- [头像上传](/zh-cn/user-generated-content/avatar-uploads/) —— 账户侧上传流程。
- [头像审核生命周期](/zh-cn/user-generated-content/avatar-review-lifecycle/) —— 上传通过审核前，账户页和应用会看到什么。
- [头像声明与交付](/zh-cn/user-generated-content/avatar-claims-and-delivery/) —— 应用侧如何收到头像。