auth.go 945 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package thoth
  2. import (
  3. "context"
  4. "google.golang.org/grpc"
  5. "google.golang.org/grpc/metadata"
  6. )
  7. func authUnaryClientInterceptor(token string) grpc.UnaryClientInterceptor {
  8. return func(
  9. ctx context.Context,
  10. method string,
  11. req interface{},
  12. reply interface{},
  13. cc *grpc.ClientConn,
  14. invoker grpc.UnaryInvoker,
  15. opts ...grpc.CallOption,
  16. ) error {
  17. md := metadata.Pairs("authorization", "Bearer "+token)
  18. ctx = metadata.NewOutgoingContext(ctx, md)
  19. return invoker(ctx, method, req, reply, cc, opts...)
  20. }
  21. }
  22. func authStreamClientInterceptor(token string) grpc.StreamClientInterceptor {
  23. return func(
  24. ctx context.Context,
  25. desc *grpc.StreamDesc,
  26. cc *grpc.ClientConn,
  27. method string,
  28. streamer grpc.Streamer,
  29. opts ...grpc.CallOption,
  30. ) (grpc.ClientStream, error) {
  31. md := metadata.Pairs("authorization", "Bearer "+token)
  32. ctx = metadata.NewOutgoingContext(ctx, md)
  33. return streamer(ctx, desc, cc, method, opts...)
  34. }
  35. }