mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-07 18:50:26 +08:00
增加edge-api token --role=[admin|user|api]命令用来快速查询节点Token
This commit is contained in:
@@ -17,6 +17,7 @@ import (
|
|||||||
"github.com/iwind/gosock/pkg/gosock"
|
"github.com/iwind/gosock/pkg/gosock"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@@ -188,6 +189,38 @@ func main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
app.On("token", func() {
|
||||||
|
var role = ""
|
||||||
|
if len(os.Args) <= 2 {
|
||||||
|
fmt.Println("require --role parameter")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var set = flag.NewFlagSet("", flag.ExitOnError)
|
||||||
|
set.StringVar(&role, "role", "", "edge-api token --role=[admin|user|api]")
|
||||||
|
_ = set.Parse(os.Args[2:])
|
||||||
|
|
||||||
|
var sock = gosock.NewTmpSock(teaconst.ProcessName)
|
||||||
|
reply, err := sock.Send(&gosock.Command{Code: "lookupToken", Params: map[string]any{
|
||||||
|
"role": role,
|
||||||
|
}})
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("[ERROR]" + err.Error())
|
||||||
|
} else {
|
||||||
|
var resultMap = maps.NewMap(reply.Params)
|
||||||
|
if resultMap.GetBool("isOk") {
|
||||||
|
var tokens = resultMap.GetSlice("tokens")
|
||||||
|
fmt.Printf("%-35s | %-35s\n", "nodeId", "secret")
|
||||||
|
fmt.Println(strings.Repeat("-", 70))
|
||||||
|
for _, tokenMap := range tokens {
|
||||||
|
var m = maps.NewMap(tokenMap)
|
||||||
|
fmt.Printf("%-35s | %-35s\n", m.GetString("nodeId"), m.GetString("secret"))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
fmt.Println("[ERROR]" + resultMap.GetString("err"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
app.Run(func() {
|
app.Run(func() {
|
||||||
nodes.NewAPINode().Start()
|
nodes.NewAPINode().Start()
|
||||||
|
|||||||
@@ -755,6 +755,41 @@ func (this *APINode) listenSock() error {
|
|||||||
"code": teaconst.InstanceCode,
|
"code": teaconst.InstanceCode,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
case "lookupToken":
|
||||||
|
var role = maps.NewMap(cmd.Params).GetString("role")
|
||||||
|
switch role {
|
||||||
|
case "admin", "user", "api":
|
||||||
|
tokens, err := models.SharedApiTokenDAO.FindAllEnabledAPITokens(nil, role)
|
||||||
|
if err != nil {
|
||||||
|
_ = cmd.Reply(&gosock.Command{
|
||||||
|
Params: map[string]any{
|
||||||
|
"isOk": false,
|
||||||
|
"err": err.Error(),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
var tokenMaps = []maps.Map{}
|
||||||
|
for _, token := range tokens {
|
||||||
|
tokenMaps = append(tokenMaps, maps.Map{
|
||||||
|
"nodeId": token.NodeId,
|
||||||
|
"secret": token.Secret,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
_ = cmd.Reply(&gosock.Command{
|
||||||
|
Params: map[string]any{
|
||||||
|
"isOk": true,
|
||||||
|
"tokens": tokenMaps,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
_ = cmd.Reply(&gosock.Command{
|
||||||
|
Params: map[string]any{
|
||||||
|
"isOk": false,
|
||||||
|
"err": "unsupported role '" + role + "'",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user