mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 07:50:25 +08:00 
			
		
		
		
	增加API令牌相关API
This commit is contained in:
		
							
								
								
									
										40
									
								
								internal/rpc/services/service_api_token.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								internal/rpc/services/service_api_token.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
 | 
			
		||||
 | 
			
		||||
package services
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeAPI/internal/db/models"
 | 
			
		||||
	rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// APITokenService API令牌服务
 | 
			
		||||
type APITokenService struct {
 | 
			
		||||
	BaseService
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// FindAllEnabledAPITokens 获取API令牌
 | 
			
		||||
func (this *APITokenService) FindAllEnabledAPITokens(ctx context.Context, req *pb.FindAllEnabledAPITokensRequest) (*pb.FindAllEnabledAPITokensResponse, error) {
 | 
			
		||||
	// 这里为了安全只允许通过API节点信息获取
 | 
			
		||||
	_, _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAPI)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var tx = this.NullTx()
 | 
			
		||||
	apiTokens, err := models.SharedApiTokenDAO.FindAllEnabledAPITokens(tx, req.Role)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var pbTokens = []*pb.APIToken{}
 | 
			
		||||
	for _, token := range apiTokens {
 | 
			
		||||
		pbTokens = append(pbTokens, &pb.APIToken{
 | 
			
		||||
			Id:     int64(token.Id),
 | 
			
		||||
			NodeId: token.NodeId,
 | 
			
		||||
			Secret: token.Secret,
 | 
			
		||||
			Role:   token.Role,
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
	return &pb.FindAllEnabledAPITokensResponse{ApiTokens: pbTokens}, nil
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user