diff --git a/admin/admin.go b/admin/admin.go index e5198e4..1be1a24 100644 --- a/admin/admin.go +++ b/admin/admin.go @@ -3,6 +3,7 @@ package main import ( "admin/admin" "flag" + "fmt" "net" "os" "strconv" @@ -59,7 +60,6 @@ func main() { listenOn := utils.GetConfigString("base.listenOn") mode := utils.GetConfigString("base.mode") serviceName := utils.GetConfigString("base.name") - registerIP := utils.GetConfigString("base.registerIP") // 初始化服务发现 if err := discovery.Init(discovery.Config{ @@ -80,13 +80,14 @@ func main() { // 注册服务 if err := discovery.Register(discovery.Instance{ ServiceName: serviceName, - IP: registerIP, + IP: c.Nacos.RegisterIP, Port: port, Group: c.Nacos.Group, }); err != nil { logx.Errorf("nacos register: %v", err) os.Exit(1) } + logx.Infof("服务注册成功: %s:%d", c.Nacos.RegisterIP, port) defer func() { if err := discovery.Deregister(); err != nil { @@ -149,6 +150,7 @@ func main() { s.Start() } +// listenPort 拆分端口 func listenPort(listenOn string) (uint64, error) { _, portStr, err := net.SplitHostPort(listenOn) if err != nil { @@ -156,3 +158,28 @@ func listenPort(listenOn string) (uint64, error) { } return strconv.ParseUint(portStr, 10, 64) } + +// getContainerIntranetIP 获取容器内网IPv4(排除回环地址) +func getContainerIntranetIP() (string, error) { + addrs, err := net.InterfaceAddrs() + if err != nil { + return "", err + } + + for _, addr := range addrs { + ipNet, ok := addr.(*net.IPNet) + if !ok { + continue + } + // 跳过127.0.0.1回环地址 + if ipNet.IP.IsLoopback() { + continue + } + // 只取IPv4地址 + ipv4 := ipNet.IP.To4() + if ipv4 != nil { + return ipv4.String(), nil + } + } + return "", fmt.Errorf("未检测到可用内网IPv4地址") +} diff --git a/admin/internal/dao/login.go b/admin/internal/dao/login.go index 6338074..8f92cf8 100644 --- a/admin/internal/dao/login.go +++ b/admin/internal/dao/login.go @@ -16,8 +16,9 @@ type JwtInfo struct { } type Token struct { - Token string `json:"token"` - Refresh string `json:"refresh"` + Token string `json:"token"` + Refresh string `json:"refresh"` + Info JwtInfo `json:"info"` } type JwtInfoServices struct { diff --git a/admin/internal/logic/adminloginlogic.go b/admin/internal/logic/adminloginlogic.go index 687e24e..c61a8fe 100644 --- a/admin/internal/logic/adminloginlogic.go +++ b/admin/internal/logic/adminloginlogic.go @@ -64,21 +64,20 @@ func (l *AdminLoginLogic) AdminLogin(in *admin.AdminLoginRequest) (*admin.Respon } data := dao.JwtInfo{ - Id: info.Id, - Name: info.Name, - Email: info.Email, - Phone: info.Phone, - Avatar: info.Avatar, - //Roles: info.Roles, + Id: info.Id, + Name: info.Name, + Email: info.Email, + Phone: info.Phone, + Avatar: info.Avatar, LastTime: utils.Now(), } retData := dao.Token{ Token: utils.MD5Encrypt(data.Phone + utils.Now().String()), + Info: data, } retData.Refresh = utils.MD5Encrypt(data.Phone + retData.Token) l.setLogin(retData.Token, retData.Refresh, data) - return l.ok(retData), nil }