fix: agent tasks cmd
This commit is contained in:
@@ -490,6 +490,7 @@ func (a *Agent) doRequest(method, path string, body interface{}) (*http.Response
|
|||||||
|
|
||||||
req.Header.Set("Authorization", "Bearer "+a.config.Token)
|
req.Header.Set("Authorization", "Bearer "+a.config.Token)
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
req.Header.Set("X-Machine-ID", a.machineID)
|
||||||
|
|
||||||
return a.client.Do(req)
|
return a.client.Do(req)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -207,7 +207,21 @@ func (c *AgentController) GetTasks(ctx *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 先尝试通过 token 查找 Agent
|
||||||
agent := c.agentService.GetByToken(token)
|
agent := c.agentService.GetByToken(token)
|
||||||
|
|
||||||
|
// 如果找不到,尝试验证令牌并通过 machine_id 查找
|
||||||
|
if agent == nil {
|
||||||
|
machineID := ctx.GetHeader("X-Machine-ID")
|
||||||
|
if machineID != "" {
|
||||||
|
// 验证令牌是否有效
|
||||||
|
if _, err := c.agentService.ValidateToken(token); err == nil {
|
||||||
|
// 令牌有效,尝试通过 machine_id 查找 Agent
|
||||||
|
agent = c.agentService.GetByMachineID(machineID)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if agent == nil {
|
if agent == nil {
|
||||||
utils.Unauthorized(ctx, "无效的 Token")
|
utils.Unauthorized(ctx, "无效的 Token")
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -230,6 +230,15 @@ func (s *AgentService) GetByToken(token string) *models.Agent {
|
|||||||
return &agent
|
return &agent
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetByMachineID 根据 MachineID 获取 Agent
|
||||||
|
func (s *AgentService) GetByMachineID(machineID string) *models.Agent {
|
||||||
|
var agent models.Agent
|
||||||
|
if err := database.DB.Where("machine_id = ?", machineID).First(&agent).Error; err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return &agent
|
||||||
|
}
|
||||||
|
|
||||||
// List 获取 Agent 列表
|
// List 获取 Agent 列表
|
||||||
func (s *AgentService) List() []models.Agent {
|
func (s *AgentService) List() []models.Agent {
|
||||||
var agents []models.Agent
|
var agents []models.Agent
|
||||||
|
|||||||
Reference in New Issue
Block a user