将 bookmark.go 重命名为 main.go,并调整包引用路径。将 bookmarks 和 user_np 两个模块的处理逻辑合并到同一个服务中,统一注册路由。同时更新了相关 API 的引用路径,确保生成代码与内部实现正确绑定。 此外,移除了独立的 user_np 服务入口文件,其功能已整合至 bookmark 服务中。 配置文件中调整了 user_np 和 vfs 服务的端口及部分接口定义,完善了用户 相关操作的路径参数和请求体结构。
39 lines
1.1 KiB
Go
39 lines
1.1 KiB
Go
// internal/models/user_np.go
|
|
|
|
package models
|
|
|
|
import (
|
|
"time"
|
|
|
|
"golang.org/x/crypto/bcrypt"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// UserNP 用户名密码认证模型
|
|
type UserNP struct {
|
|
ID int64 `json:"id" gorm:"primaryKey"`
|
|
Username string `json:"username" gorm:"not null;index;size:255;unique"`
|
|
Password string `json:"password" gorm:"not null;size:255"`
|
|
Email *string `json:"email" gorm:"type:text;unique"`
|
|
Token *string `json:"token" gorm:"type:text"`
|
|
CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"`
|
|
UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"`
|
|
DeletedAt gorm.DeletedAt `json:"deleted_at" gorm:"index"`
|
|
}
|
|
|
|
// HashPassword 对密码进行哈希处理
|
|
func (u *UserNP) HashPassword(password string) error {
|
|
bytes, err := bcrypt.GenerateFromPassword([]byte(password), 14)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
u.Password = string(bytes)
|
|
return nil
|
|
}
|
|
|
|
// CheckPassword 验证密码
|
|
func (u *UserNP) CheckPassword(providedPassword string) bool {
|
|
err := bcrypt.CompareHashAndPassword([]byte(u.Password), []byte(providedPassword))
|
|
return err == nil
|
|
}
|