Go中的grpc header/cookie

cil*_*eng 2 go protocol-buffers grpc

我想在服务器应用程序上放置,可以通过Go APP和Java app调用.

由于某种原因,有一个cookie身份验证和oAuth机制,所以我想将一个Go应用程序设置为Auth Micro-service以进行身份​​验证.

由于GRPC是基于HTTP2构建的,所以标头和cookie都在协议上.但我没有找到如何在Rpc发生时继续执行头和cookie,由Go实现,在GitHub上我只发现了JAVA-Implementation for标题:

https://github.com/grpc/grpc-java/tree/master/examples/src/main/java/io/grpc/examples/header
Run Code Online (Sandbox Code Playgroud)

为此目的,有人可以给我一些Go实施方向吗?

Eri*_*son 9

gRPC中的标题称为"元数据".客户端只能发送"标题".服务器可以发送"标题"和"预告片".

您希望使用该google.golang.org/grpc/metadata包并metadata.NewContext()在客户端发送元数据.使用grpc.SendHeader()grpc.SetTrailer()在服务器端发送元数据.使用grpc.Header()grpc.Trailer() CallOptions接收Metadata客户端.使用metadata.FromContext()了服务器端接收的元数据.

  • https://github.com/grpc/grpc-go/blob/master/Documentation/grpc-metadata.md 的官方文档做得非常好。 (2认同)