使用者身分
User Identity 包含可識別個人資訊(PII),並與 user 主記錄分離以滿足隱私合規需求。它可獨立刪除,同時保留 user 參照。
Schema
interface UserIdentity {
id: string; // User ID (uid...)
given_name: string | null;
family_name: string | null;
display_name: string | null;
avatar_url: string | null;
locale: string | null; // e.g., "en-US"
timezone: string | null; // e.g., "America/New_York"
preferred_language: string | null;
external_id: string | null;
}
屬性
| 屬性 |
型別 |
說明 |
id |
string |
此 identity 所屬的使用者 |
given_name |
string? |
名 |
family_name |
string? |
姓 |
display_name |
string? |
偏好顯示名稱 |
avatar_url |
string? |
個人頭像 URL |
locale |
string? |
地區偏好(BCP 47) |
timezone |
string? |
IANA 時區 |
preferred_language |
string? |
語言偏好 |
external_id |
string? |
外部系統識別碼 |
隱私設計
User (Permanent) Identity (Deletable)
┌─────────────┐ ┌─────────────────┐
│ id │◄────────▶│ id │
│ application │ │ given_name │
│ status │ │ family_name │
└─────────────┘ │ display_name │
│ ... │
└─────────────────┘
GDPR 操作
| 操作 |
效果 |
| DELETE |
刪除全部 PII,保留 user 參照 |
| POST(recreate) |
刪除後重建 identity |
範例
{
"id": "uid_2kHfPZcN9xW4mE8RtY7vB",
"given_name": "Jane",
"family_name": "Smith",
"display_name": "Jane S.",
"avatar_url": "https://example.com/avatar.jpg",
"locale": "en-US",
"timezone": "America/New_York",
"preferred_language": "en",
"external_id": "crm_123"
}
相關