Go中的grpc header / cookie

时间:2015-07-13 09:40:18

标签: go protocol-buffers grpc

我想在Go APP和Java app都可以调用的服务器应用程序上放置。

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

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

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

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

2 个答案:

答案 0 :(得分:7)

gRPC中的标题称为"元数据。"客户只能发送"标题"。服务器可以发送"标头"和#34;预告片。"

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

答案 1 :(得分:-1)

无耻插件:支持以自定义ClientInterceptor的gRPC Java 中的cookie。 通过检查从服务器响应中收到的set-cookie HTTP标头,并通过使用请求中的cookie HTTP标头将cookie转发到服务器来管理cookie。

https://github.com/shamsimam/grpc-java-cookies