-- 第三方平台登录配置表: 合并前端地址字段, 移除 state 超时与作用域字段 -- 将 frontend_base_url + callback_path 合并为 frontend_callback_url, -- state_timeout 不再由平台配置维护, 改用系统默认常量(300秒), -- scopes 字段从未参与授权请求, 各平台 scope 已硬编码, 移除该死字段 ALTER TABLE iam_social_config ADD COLUMN IF NOT EXISTS frontend_callback_url VARCHAR(384); -- 迁移已有数据(拼接基础地址与回调路径) UPDATE iam_social_config SET frontend_callback_url = CONCAT(COALESCE(frontend_base_url, ''), COALESCE(callback_path, '')) WHERE frontend_callback_url IS NULL AND (frontend_base_url IS NOT NULL OR callback_path IS NOT NULL); ALTER TABLE iam_social_config DROP COLUMN IF EXISTS frontend_base_url; ALTER TABLE iam_social_config DROP COLUMN IF EXISTS callback_path; ALTER TABLE iam_social_config DROP COLUMN IF EXISTS state_timeout; ALTER TABLE iam_social_config DROP COLUMN IF EXISTS scopes; ALTER TABLE iam_social_config DROP COLUMN IF EXISTS name; ALTER TABLE iam_social_config DROP COLUMN IF EXISTS frontend_callback_url; -- client_secret 改为加密存储(AES-256-GCM, 由 DataEncryptTypeHandler 透明加解密) -- 字段长度 VARCHAR(256) 可容纳密文(appSecret 多为 32~64 字符, 密文 < 200 字符), 无需调整 -- 开发阶段无历史明文数据, 跳过迁移; 生产环境启用前需写一次性逻辑加密历史明文 COMMENT ON COLUMN iam_social_config.client_secret IS '客户端密钥(加密存储)';