改用API驗證

This commit is contained in:
beabigegg
2025-10-02 17:13:24 +08:00
parent 0a89c19fc9
commit adecdf0cce
48 changed files with 6136 additions and 1239 deletions

View File

@@ -0,0 +1,36 @@
-- 修正認證系統架構
-- 方案 A: 保留 dt_users 的 username 和 display_name都使用 API 回傳的 name (姓名+email)
-- 使用 email 作為主要唯一識別碼sys_user 表專門記錄登入資訊
-- Created: 2025-10-01
-- 1. 確保 dt_users 表的 email 唯一約束
-- 先檢查是否有重複的 email如果有則需要手動處理
-- 因為有外鍵約束,不能直接刪除
-- 先顯示重複的 email 記錄讓管理員確認
-- SELECT email, COUNT(*) as count FROM dt_users GROUP BY email HAVING COUNT(*) > 1;
-- 添加 email 唯一約束
ALTER TABLE dt_users
ADD CONSTRAINT uk_dt_users_email UNIQUE (email);
-- 2. 調整現有欄位註解,說明新的使用方式
ALTER TABLE dt_users
MODIFY COLUMN username VARCHAR(255) NOT NULL COMMENT 'API name (姓名+email格式)',
MODIFY COLUMN email VARCHAR(255) NOT NULL COMMENT '電子郵件 (主要識別鍵)';
-- 3. 保持 sys_user 表結構,但調整為專門記錄登入資訊
-- sys_user 表通過 email 與 dt_users 關聯
-- (保留現有的 sys_user 表,因為它是專門用於登入記錄)
-- 4. 重新命名 login_logs 為 dt_login_logs (配合專案命名規則)
RENAME TABLE login_logs TO dt_login_logs;
-- 5. 更新 dt_login_logs 表結構 (配合 dt_users 的主鍵)
ALTER TABLE dt_login_logs
ADD COLUMN user_id INT COMMENT '關聯到 dt_users.id',
ADD INDEX idx_user_id (user_id),
ADD FOREIGN KEY fk_dt_login_logs_user_id (user_id) REFERENCES dt_users(id) ON DELETE SET NULL;
-- 6. 建立使用者識別索引 (支援 email 和 username 快速查詢)
ALTER TABLE dt_users
ADD INDEX idx_username_email (username, email);