User Identity
User Identity เก็บข้อมูลที่ระบุตัวบุคคล (PII) แยกจาก user record เพื่อรองรับข้อกำหนดด้านความเป็นส่วนตัว สามารถลบได้แยกอิสระโดยยังคง user reference ไว้
สคีมา
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; // เช่น "en-US"
timezone: string | null; // เช่น "America/New_York"
preferred_language: string | null;
external_id: string | null;
}
คุณสมบัติ
| Property | Type | คำอธิบาย |
|---|
id | string | ผู้ใช้ที่ identity นี้สังกัด |
given_name | string? | ชื่อต้น |
family_name | string? | นามสกุล |
display_name | string? | ชื่อแสดงผลที่ต้องการ |
avatar_url | string? | URL รูปโปรไฟล์ |
locale | string? | ค่า locale (BCP 47) |
timezone | string? | IANA timezone |
preferred_language | string? | ภาษาที่ต้องการ |
external_id | string? | ตัวระบุจากระบบภายนอก |
การออกแบบความเป็นส่วนตัว
User (Permanent) Identity (Deletable)
┌─────────────┐ ┌─────────────────┐
│ id │◄────────▶│ id │
│ application │ │ given_name │
│ status │ │ family_name │
└─────────────┘ │ display_name │
│ ... │
└─────────────────┘
การดำเนินการตาม GDPR
| Operation | ผลลัพธ์ |
|---|
| DELETE | ลบ PII ทั้งหมด แต่คง user reference ไว้ |
| 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"
}
ที่เกี่ยวข้อง