mirror of
https://github.com/PretendoNetwork/friends.git
synced 2026-03-21 18:04:11 -05:00
27 lines
577 B
Go
27 lines
577 B
Go
package grpc
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
|
|
"github.com/PretendoNetwork/friends/globals"
|
|
"google.golang.org/grpc"
|
|
"google.golang.org/grpc/metadata"
|
|
)
|
|
|
|
func apiKeyInterceptor(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) {
|
|
md, ok := metadata.FromIncomingContext(ctx)
|
|
|
|
if ok {
|
|
apiKeyHeader := md.Get("X-API-Key")
|
|
|
|
if len(apiKeyHeader) == 0 || apiKeyHeader[0] != globals.Config.GRPCAPIKey {
|
|
return nil, errors.New("Missing or invalid API key")
|
|
}
|
|
}
|
|
|
|
h, err := handler(ctx, req)
|
|
|
|
return h, err
|
|
}
|