forked from datawhale/whale-town-end
db:更新用户表结构支持邮箱验证
- 在用户实体中添加 email_verified 字段 - 更新用户DTO支持邮箱验证状态 - 修改用户服务支持邮箱验证状态更新 - 添加按邮箱查找用户的方法 - 更新相关的单元测试
This commit is contained in:
@@ -215,4 +215,21 @@ export class CreateUserDto {
|
||||
@Min(1, { message: '角色值最小为1' })
|
||||
@Max(9, { message: '角色值最大为9' })
|
||||
role?: number = 1;
|
||||
|
||||
/**
|
||||
* 邮箱验证状态
|
||||
*
|
||||
* 业务规则:
|
||||
* - 可选字段,默认为false(未验证)
|
||||
* - 控制邮箱相关功能的可用性
|
||||
* - OAuth登录时可直接设为true
|
||||
* - 影响密码重置等安全功能
|
||||
*
|
||||
* 验证规则:
|
||||
* - 可选字段验证
|
||||
* - 布尔类型验证
|
||||
* - 默认值:false(未验证)
|
||||
*/
|
||||
@IsOptional()
|
||||
email_verified?: boolean = false;
|
||||
}
|
||||
@@ -135,6 +135,33 @@ export class Users {
|
||||
})
|
||||
email: string;
|
||||
|
||||
/**
|
||||
* 邮箱验证状态
|
||||
*
|
||||
* 数据库设计:
|
||||
* - 类型:BOOLEAN,布尔值
|
||||
* - 约束:非空、默认值false
|
||||
* - 索引:用于查询已验证用户
|
||||
*
|
||||
* 业务规则:
|
||||
* - false:邮箱未验证
|
||||
* - true:邮箱已验证
|
||||
* - 影响密码重置等安全功能
|
||||
* - OAuth登录时可直接设为true
|
||||
*
|
||||
* 安全考虑:
|
||||
* - 未验证邮箱限制部分功能
|
||||
* - 验证后才能用于密码重置
|
||||
* - 支持重新发送验证邮件
|
||||
*/
|
||||
@Column({
|
||||
type: 'boolean',
|
||||
nullable: false,
|
||||
default: false,
|
||||
comment: '邮箱是否已验证'
|
||||
})
|
||||
email_verified: boolean;
|
||||
|
||||
/**
|
||||
* 手机号码
|
||||
*
|
||||
|
||||
@@ -50,6 +50,7 @@ describe('Users Entity, DTO and Service Tests', () => {
|
||||
github_id: 'github_123',
|
||||
avatar_url: 'https://example.com/avatar.jpg',
|
||||
role: 1,
|
||||
email_verified: false,
|
||||
created_at: new Date(),
|
||||
updated_at: new Date(),
|
||||
};
|
||||
|
||||
@@ -96,6 +96,7 @@ export class UsersService {
|
||||
user.github_id = createUserDto.github_id || null;
|
||||
user.avatar_url = createUserDto.avatar_url || null;
|
||||
user.role = createUserDto.role || 1;
|
||||
user.email_verified = createUserDto.email_verified || false;
|
||||
|
||||
// 保存到数据库
|
||||
return await this.usersRepository.save(user);
|
||||
|
||||
Reference in New Issue
Block a user