mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-04 07:34:01 +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"
|
||||
"log"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
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() {
|
||||
nodes.NewAPINode().Start()
|
||||
|
||||
@@ -755,6 +755,41 @@ func (this *APINode) listenSock() error {
|
||||
"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