新添用户认证表
This commit is contained in:
@@ -11,6 +11,7 @@ SET FOREIGN_KEY_CHECKS=0;
|
|||||||
DROP TABLE IF EXISTS chat_message;
|
DROP TABLE IF EXISTS chat_message;
|
||||||
DROP TABLE IF EXISTS chat_conversation_member;
|
DROP TABLE IF EXISTS chat_conversation_member;
|
||||||
DROP TABLE IF EXISTS chat_conversation;
|
DROP TABLE IF EXISTS chat_conversation;
|
||||||
|
DROP TABLE IF EXISTS chat_user_auth;
|
||||||
DROP TABLE IF EXISTS chat_user;
|
DROP TABLE IF EXISTS chat_user;
|
||||||
SET FOREIGN_KEY_CHECKS=1;
|
SET FOREIGN_KEY_CHECKS=1;
|
||||||
|
|
||||||
@@ -27,6 +28,27 @@ CREATE TABLE IF NOT EXISTS chat_user (
|
|||||||
KEY idx_created_at (created_at)
|
KEY idx_created_at (created_at)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS chat_user_auth (
|
||||||
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
user_id BIGINT UNSIGNED NOT NULL,
|
||||||
|
auth_type TINYINT UNSIGNED NOT NULL COMMENT '1-wechat_miniapp_openid 2-wechat_unionid 3-phone_sms 4-email_magic_link 5-oauth 6-username_password',
|
||||||
|
auth_identifier VARCHAR(191) NOT NULL COMMENT 'openid/unionid/phone/email/oauth-sub/username',
|
||||||
|
password_hash CHAR(64) NULL COMMENT 'sha256 hex for demo only; production should use bcrypt/argon2',
|
||||||
|
credential_json JSON NULL COMMENT 'Extra auth payload, e.g. app_id/provider/phone_area',
|
||||||
|
is_primary TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '1-primary login identity 0-secondary',
|
||||||
|
status TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '1-active 2-disabled 3-revoked',
|
||||||
|
last_login_at DATETIME(3) NULL,
|
||||||
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||||
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
UNIQUE KEY uk_auth_type_identifier (auth_type, auth_identifier),
|
||||||
|
KEY idx_user_status (user_id, status),
|
||||||
|
KEY idx_last_login_at (last_login_at),
|
||||||
|
CONSTRAINT fk_user_auth_user
|
||||||
|
FOREIGN KEY (user_id) REFERENCES chat_user(id)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS chat_conversation (
|
CREATE TABLE IF NOT EXISTS chat_conversation (
|
||||||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
title VARCHAR(128) NULL,
|
title VARCHAR(128) NULL,
|
||||||
@@ -125,6 +147,60 @@ VALUES
|
|||||||
'2026-03-25 21:11:00.000'
|
'2026-03-25 21:11:00.000'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
INSERT INTO chat_user_auth (
|
||||||
|
id,
|
||||||
|
user_id,
|
||||||
|
auth_type,
|
||||||
|
auth_identifier,
|
||||||
|
password_hash,
|
||||||
|
credential_json,
|
||||||
|
is_primary,
|
||||||
|
status,
|
||||||
|
last_login_at,
|
||||||
|
created_at,
|
||||||
|
updated_at
|
||||||
|
)
|
||||||
|
VALUES
|
||||||
|
(
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
6,
|
||||||
|
'test1',
|
||||||
|
SHA2('123', 256),
|
||||||
|
JSON_OBJECT('provider', 'local_account'),
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
'2026-03-25 09:58:00.000',
|
||||||
|
'2026-03-25 09:00:00.000',
|
||||||
|
'2026-03-25 09:58:00.000'
|
||||||
|
),
|
||||||
|
(
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
6,
|
||||||
|
'test2',
|
||||||
|
SHA2('123', 256),
|
||||||
|
JSON_OBJECT('provider', 'local_account'),
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
'2026-03-25 10:01:00.000',
|
||||||
|
'2026-03-25 09:20:00.000',
|
||||||
|
'2026-03-25 10:01:00.000'
|
||||||
|
),
|
||||||
|
(
|
||||||
|
3,
|
||||||
|
3,
|
||||||
|
6,
|
||||||
|
'test3',
|
||||||
|
SHA2('123', 256),
|
||||||
|
JSON_OBJECT('provider', 'local_account'),
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
'2026-03-25 21:11:00.000',
|
||||||
|
'2026-03-25 20:30:00.000',
|
||||||
|
'2026-03-25 21:11:00.000'
|
||||||
|
);
|
||||||
|
|
||||||
INSERT INTO chat_conversation (
|
INSERT INTO chat_conversation (
|
||||||
id,
|
id,
|
||||||
title,
|
title,
|
||||||
|
|||||||
Reference in New Issue
Block a user