- 后端:新增密码登录/注册/重置/改密接口,users 表新增 password_hash 字段 - 安全加固:注册改为冲突即失败防止"注册即改密",登录用户不存在统一返回密码错误并计失败次数防枚举,改密需校验旧密码,清理登录失败计数中的死代码 - 前端:登录页重构为"登录/注册"两个 tab,登录内可切换密码/短信方式,默认密码登录 - 个人中心新增修改密码入口(PC 弹窗 + 移动端 popup),PC 个人资料页移除买家/卖家服务面板
24 lines
1.1 KiB
Go
24 lines
1.1 KiB
Go
package model
|
|
|
|
import "time"
|
|
|
|
type User struct {
|
|
ID uint64 `gorm:"primaryKey" json:"id"`
|
|
Phone string `gorm:"size:32;not null;uniqueIndex" json:"phone"`
|
|
PasswordHash string `gorm:"size:255;not null;default:''" json:"-"`
|
|
Nickname string `gorm:"size:64;not null;default:''" json:"nickname"`
|
|
AvatarURL string `gorm:"size:512;not null;default:''" json:"avatar_url"`
|
|
RealnameStatus string `gorm:"size:32;not null;default:'unverified'" json:"realname_status"`
|
|
RiskStatus string `gorm:"size:32;not null;default:'normal'" json:"risk_status"`
|
|
CreditScore int `gorm:"not null;default:100" json:"credit_score"`
|
|
DepositFreeQuotaCent int64 `gorm:"not null;default:0" json:"-"`
|
|
Status string `gorm:"size:32;not null;default:'active'" json:"status"`
|
|
LastLoginAt *time.Time `json:"last_login_at"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
func (User) TableName() string {
|
|
return "users"
|
|
}
|