refactor(identity): rename authentik_sub to user_sub and authentik_user_id to idp_user_id

This commit is contained in:
Chris
2026-03-31 22:32:48 +08:00
parent 316d17027b
commit fe6453f6f8
35 changed files with 265 additions and 221 deletions

View File

@@ -18,8 +18,8 @@
## 會員資料與 Authentik 對齊
- `username`:登入帳號(可編輯,可同步)
- `display_name`:顯示名稱(可編輯,可同步到 Authentik `name`
- `authentik_sub`:由 Authentik UID 回寫
- `authentik_user_id`:保留 Authentik user id供更新/密碼重設
- `user_sub`:由 Authentik UID 回寫
- `idp_user_id`:保留 Authentik user id供更新/密碼重設
## 密碼流程
- 目前:後台可觸發重設密碼(產生臨時密碼)

View File

@@ -13,5 +13,5 @@
- [x] 管理 API 完成 systems/modules/companies/sites/members/permission-groups CRUD
- [x] 會員 upsert/update 可同步 Authentik
- [x] 會員資料新增 `username` 欄位,與 `display_name` 分離
- [x] 新增 `POST /admin/members/{authentik_sub}/password/reset`
- [x] 新增 `POST /admin/members/{user_sub}/password/reset`
- [x] DB 新增 `users.username`(含 migration 腳本)

View File

@@ -3,11 +3,12 @@
## 真實來源
- `backend/scripts/init_schema.sql`
- 線上增量:`backend/scripts/migrate_add_users_username.sql`
- 欄位重命名增量:`backend/scripts/migrate_rename_identity_columns.sql`
## 主要表
- `users`
- `authentik_sub` UNIQUE
- `authentik_user_id` INTEGER
- `user_sub` UNIQUE
- `idp_user_id` INTEGER
- `username` UNIQUE
- `email` UNIQUE
- `display_name`
@@ -17,7 +18,7 @@
- `systems`
- `modules``system_key -> systems.system_key`
- `permission_groups`
- `permission_group_members`group + authentik_sub
- `permission_group_members`group + user_sub
- `permission_group_permissions`group + site/system/module/action
- `user_scope_permissions`(相容保留)
- `api_clients`(保留給機器對機器用途)
@@ -27,7 +28,7 @@
- `action in ('view','edit')`
## 會員與 Authentik 對齊
- `users.authentik_sub` 對應 Authentik `uid`
- `users.user_sub` 對應 Authentik `uid`
- `users.username` 對應 Authentik `username`
- `users.display_name` 對應 Authentik `name`

View File

@@ -2,14 +2,14 @@
## 目前後端契約重點
- 後台登入:只吃 Bearer + admin 群組檢查
- 會員模型:`authentik_sub`, `username`, `email`, `display_name`, `is_active`
- 會員模型:`user_sub`, `username`, `email`, `display_name`, `is_active`
- 會員密碼:支援重設 API回傳臨時密碼
## 會員頁必做
1. 新增會員表單欄位:`username``email``display_name`
2. 編輯會員表單欄位:`username``email``display_name``is_active`
3. 表格欄位要顯示:`authentik_sub``username``email``display_name`
4. 操作欄新增「重設密碼」按鈕,串 `POST /admin/members/{authentik_sub}/password/reset`
3. 表格欄位要顯示:`user_sub``username``email``display_name`
4. 操作欄新增「重設密碼」按鈕,串 `POST /admin/members/{user_sub}/password/reset`
5. 重設成功後顯示臨時密碼,並提醒管理員安全轉交
## 其他頁面

View File

@@ -111,7 +111,7 @@ Response:
"items": [
{
"id": "uuid",
"authentik_sub": "authentik-uid",
"user_sub": "authentik-uid",
"username": "chris",
"email": "chris@ose.tw",
"display_name": "Chris",
@@ -128,7 +128,7 @@ Response:
Request:
```json
{
"sub": "authentik-uid",
"user_sub": "authentik-uid",
"username": "chris",
"email": "chris@ose.tw",
"display_name": "Chris",
@@ -140,8 +140,8 @@ Response:
```json
{
"id": "uuid",
"sub": "authentik-uid",
"authentik_user_id": 123,
"user_sub": "authentik-uid",
"idp_user_id": 123,
"username": "chris",
"email": "chris@ose.tw",
"display_name": "Chris",
@@ -149,11 +149,11 @@ Response:
}
```
### GET `/internal/permissions/{authentik_sub}/snapshot`
### GET `/internal/permissions/{user_sub}/snapshot`
Response:
```json
{
"authentik_sub": "authentik-uid",
"user_sub": "authentik-uid",
"permissions": [
{
"scope_type": "site",
@@ -170,7 +170,7 @@ Response:
Request:
```json
{
"sub": "authentik-uid",
"user_sub": "authentik-uid",
"email": "user@example.com",
"username": "user1",
"display_name": "User One",
@@ -181,7 +181,7 @@ Request:
Response:
```json
{
"authentik_user_id": 123,
"idp_user_id": 123,
"action": "created"
}
```

View File

@@ -25,6 +25,6 @@ npm run dev
## 5) 會員流程驗收
1. 新增會員username/email/display_name開啟 sync_to_authentik
2. 確認列表可看到新會員與 `authentik_sub`
2. 確認列表可看到新會員與 `user_sub`
3. 點「重設密碼」,取得臨時密碼
4. 到 Authentik 驗證該會員可用新密碼登入