优化小程序

This commit is contained in:
hero920103 committed 2026-10-31 01:21:55 +08:00
1 parent 2e2b837a20
commit 727319a6eb
24 files changed
+1509 -200

No files matched your search

+7 -6
View File
@@ -46,12 +46,13 @@ func (m *AuthIdentity) TableName() string {
// 第三方登录 provider 常量
const (
IdPWechat = "wechat"
IdPDingTalk = "dingtalk"
IdPFeishu = "feishu"
IdPQQ = "qq"
IdPGitHub = "github"
IdPGoogle = "google"
IdPWechat = "wechat"
IdPWechatMini = "wechat_mini"
IdPDingTalk = "dingtalk"
IdPFeishu = "feishu"
IdPQQ = "qq"
IdPGitHub = "github"
IdPGoogle = "google"
)
// AuthIdentityThird 第三方身份绑定:yz_auth_identity_third
+34
View File
@@ -0,0 +1,34 @@
package models
import "time"
// =============================================================
// 微信小程序扫码注册核验会话 yz_auth_mini_register
// (建表脚本:docs/sql/create_auth_mini_register.sql)
// PC 注册页发起会话并展示小程序码 → 用户扫码在小程序内确认(wx.login)→
// 服务端写入 openid/unionid → PC 端轮询到已确认后继续注册,核验时按 scene 核销。
// =============================================================
// 会话状态
const (
MiniRegisterStatusWaiting = 0 // 待确认(已生成小程序码)
MiniRegisterStatusConfirmed = 1 // 已确认(小程序端已上报 openid)
MiniRegisterStatusUsed = 2 // 已核销(注册第一步已取用)
MiniRegisterStatusExpired = 3 // 已过期
)
// AuthMiniRegister 微信小程序扫码注册核验会话
type AuthMiniRegister struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
Scene string `orm:"column(scene);size(64)" json:"scene"`
OpenID string `orm:"column(openid);size(64)" json:"openid"`
UnionID string `orm:"column(unionid);size(64)" json:"unionid"`
Mobile string `orm:"column(mobile);size(32)" json:"mobile"`
AppID string `orm:"column(app_id);size(64)" json:"app_id"`
Status int8 `orm:"column(status)" json:"status"`
ExpireAt time.Time `orm:"column(expire_at);type(datetime)" json:"expire_at"`
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
UpdateTime *time.Time `orm:"column(update_time);type(datetime);null" json:"update_time"`
}
func (m *AuthMiniRegister) TableName() string { return "yz_auth_mini_register" }
+38
View File
@@ -0,0 +1,38 @@
package models
import "time"
// =============================================================
// 注册会话 yz_auth_register_session
// (建表脚本:docs/sql/create_auth_register_session.sql)
// 第一步核验通过 → 写入本表并签发 token(此时尚未创建身份);
// 第二步企业归属时按 token 取出、建号并写回 identity_id;业务成功后删除。
// 落库而非放内存:服务重启 / 多副本部署都不会让用户的注册流程中途失效。
// =============================================================
// 注册会话状态
const (
RegisterSessionPending = 0 // 待完成(第二步归属未提交)
RegisterSessionDone = 1 // 已完成
)
// AuthRegisterSession 注册会话
type AuthRegisterSession struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
Token string `orm:"column(token);size(64)" json:"-"`
Account string `orm:"column(account);size(64)" json:"account"`
Mobile string `orm:"column(mobile);size(20)" json:"mobile"`
Nickname string `orm:"column(nickname);size(64)" json:"nickname"`
PasswordHash string `orm:"column(password_hash);size(255)" json:"-"`
PasswordAlgo string `orm:"column(password_algo);size(16)" json:"password_algo"`
OpenID string `orm:"column(openid);size(64)" json:"openid"`
UnionID string `orm:"column(unionid);size(64)" json:"unionid"`
Provider string `orm:"column(provider);size(32)" json:"provider"`
IdentityID uint64 `orm:"column(identity_id)" json:"identity_id"`
Status int8 `orm:"column(status)" json:"status"`
ExpireAt time.Time `orm:"column(expire_at);type(datetime)" json:"expire_at"`
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
UpdateTime *time.Time `orm:"column(update_time);type(datetime);null" json:"update_time"`
}
func (m *AuthRegisterSession) TableName() string { return "yz_auth_register_session" }
+5
View File
@@ -237,6 +237,11 @@ func Init(_ string) {
new(WechatMpLoginToken),
new(WechatMpScanLogin),
// 微信小程序扫码注册核验会话(docs/sql/create_auth_mini_register.sql)
new(AuthMiniRegister),
// 注册会话(第一步核验 → 第二步企业归属,docs/sql/create_auth_register_session.sql)
new(AuthRegisterSession),
// 微信小程序配置(docs/sql/create_wechat_mini_config.sql)
new(WechatMiniConfig),
// 微信小程序多应用配置(docs/sql/create_wechat_mini_app.sql)