feat(cfg): Add user creation hook

- Add `OnUserCreate` hook variable in `cfg/cfg.go` for custom callbacks
    - Invoke `OnUserCreate` after successful user registration in `api/auth/register.go`
    - Log warning when user creation hook fails
v4
veypi 13 hours ago
parent a63dc65ab6
commit c84859a034

@ -18,6 +18,7 @@ import (
"github.com/veypi/vbase/libs/jwt" "github.com/veypi/vbase/libs/jwt"
"github.com/veypi/vbase/models" "github.com/veypi/vbase/models"
"github.com/veypi/vigo" "github.com/veypi/vigo"
"github.com/veypi/vigo/logv"
"gorm.io/gorm" "gorm.io/gorm"
) )
@ -158,6 +159,9 @@ func register(x *vigo.X, req *RegisterRequest) (*AuthResponse, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
if err := cfg.OnUserCreate(user.ID); err != nil {
logv.Warn().Msgf("user create hook failed: %s", err)
}
// 授予角色(事务外,因为事务已确保用户创建成功) // 授予角色(事务外,因为事务已确保用户创建成功)
roleCode := "user" roleCode := "user"

@ -78,3 +78,7 @@ var Redis = Global.Redis.Client
// Auth 是全局的权限检查对象,通过 SetProvider 注入 Provider 实现 // Auth 是全局的权限检查对象,通过 SetProvider 注入 Provider 实现
var Auth = auth.New() var Auth = auth.New()
var OnUserCreate = func(user_id string) error {
return nil
}

Loading…
Cancel
Save