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("Content-Type", "application/json")
|
||||
req.Header.Set("X-Machine-ID", a.machineID)
|
||||
|
||||
return a.client.Do(req)
|
||||
}
|
||||
|
||||
@@ -207,7 +207,21 @@ func (c *AgentController) GetTasks(ctx *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
// 先尝试通过 token 查找 Agent
|
||||
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 {
|
||||
utils.Unauthorized(ctx, "无效的 Token")
|
||||
return
|
||||
|
||||
@@ -230,6 +230,15 @@ func (s *AgentService) GetByToken(token string) *models.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 列表
|
||||
func (s *AgentService) List() []models.Agent {
|
||||
var agents []models.Agent
|
||||
|
||||
Reference in New Issue
Block a user