Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

grpc header/cookie in Go

I want to do place on server application which can be called by Go APP and Java app both.

for some reason ,there's a cookie authentication and oAuth mechanism ,so I want to set one Go app as Auth Micro-service for the authentication purpose.

As GRPC is built on the HTTP2 ,so The headers and cookies are on the protocol.but I did not find out how to carry on header and cookie when the rpc occurs,implemented by Go, on GitHub I only found the JAVA-Implementation for headers at :

https://github.com/grpc/grpc-java/tree/master/examples/src/main/java/io/grpc/examples/header

Can anybody give me some direction of Go implementation for this purpose?

like image 996
cilendeng Avatar asked Jul 13 '15 09:07

cilendeng


1 Answers

Headers in gRPC are called "Metadata." Clients can only send "headers". Servers can send both "headers" and "trailers."

You want to:

  • Use the google.golang.org/grpc/metadata package and metadata.NewContext() to send metadata from the client-side.
  • Use grpc.SendHeader() and grpc.SetTrailer() to send metadata from the server-side.
  • Use the grpc.Header() and grpc.Trailer() CallOptions for receiving the Metadata on the client-side.
  • Use metadata.FromContext() for receiving metadata on the server-side.
like image 90
Eric Anderson Avatar answered Oct 06 '22 01:10

Eric Anderson